title: How do I implement my own static Empty or Zero field properly
body: <p>I have a class, this class can be empty. This class has only public properties of type String. When this class is in an empty state, that means that all properties have the value of String.Empty.</p>
  
  <p>1) With a public static <strong>field</strong>, the properties of Class.Empty can be modified.</p>
  
  <p>2) I don't see that a public static <strong>property</strong> getter should return a new empty object (set all fields to Empty <em>manually</em>) every time. I consider that bad practice.</p>
  
  <p>3) An alternate solution is to implement your own <em>Class.<strong>IsNullOrEmpty</strong>(Class obj)</em>.</p>
  
  <p>4) A <em>non-static</em> public boolean property <em>obj.<strong>IsEmpty</em></strong>.</p>
  
  <p>In the <em>other class</em> where <em>this class</em> is being used, the property will never be null. The <em>other class</em> is returned from a method (of yet another class,) which properly initializes it.</p>
  
  <p>The only case the property might be null, is if it's newed outside that method, which then causes it to be in an invalid state anyway.</p>