title: Default setter param in C#
body: <p>I have a class I want to implement, but there is a lot of conditional logic so I decided to implement a builder(like) pattern. These setters will pretty much only be flags to set </p>
  
  <pre><code>private class MockBuilder
  {
    private bool _flag1 = false;
    private bool _flag2 = false;
    // arbitrarily long amount of flags here
  
    public MockBuilder()
    {
    }
    public void DoFlag1(bool value = true)
    {
        _flag1 = value;
    }
    public void DoFlag2(bool value = true)
    {
        _flag2 = value;
    }
    public builtObject Build()
    {
      // Build with current flags
    }
  }
  </code></pre>
  
  <p>Long story short, I looked into default params for setters and some questions like: <a href="https://stackoverflow.com/questions/6709072/c-getter-setter">c#: getter/setter</a>
  and wondering if there was a more "C#" way to do this, something along the lines of</p>
  
  <pre><code>public bool flag1 { get; set(value = true); }
  </code></pre>
  
  <p>The end goal being able to call the builder like so</p>
  
  <pre><code>var object = new MockBuilder();
  builder
    .flag1()
    .flag3()
  // etc...
    .generate();
  </code></pre>
  
  <p>Does C# implement some sort of default value for setters? Is this a good use of the builder pattern? Should I be using a different pattern all together?</p>