title: Preferred way to set default values of nullable properties?
body: <p>I'm in a dilemma. The (reduced) task is to redesign the following data holder class</p>
  
  <pre><code>class Stuff
  {
    public String SomeInfo { get; set; }
  }
  </code></pre>
  
  <p>to accommodate the demand that <em>null</em> mustn't be returned. I can think of two ways to achieve that and after deep consideration of 15 minutes, I simply can't decide which one is to be preferred.</p>
  
  <p>Approach by constructor.</p>
  
  <pre><code>class Stuff
  {
    public String SomeInfo { get; set; }
    public Stuff() { SomeInfo = String.Empty; }
  }
  </code></pre>
  
  <p>Approach by property.</p>
  
  <pre><code>class Stuff
  {
    private String _SomeInfo;
    public String SomeInfo 
    { 
      get { return _SomeInfo ?? String.Empty; }
      set { _SomeInfo = value; }
    }
  }
  </code></pre>
  
  <p>Note that the creation of the <em>Stuff</em> instances might be done using the constructor as well as initialization, if that's of any significance. As far as I'm informed, there won't be any other restrictions (but you know how the customers' specifications not always reflect the reality).</p>