title: Non-nullable property is null
body: <p>I have a very simple class <code>Address</code>:</p>
  
  <pre><code>public class Address
  {
      public string Name { get; set; }
      public string Country { get; set; }
  }
  </code></pre>
  
  <p>I declared <code>Name</code> as <code>string</code> and <em>NOT</em> as <code>string?</code>, because it should never be <code>null</code>.</p>
  
  <p>Now i have a method where i get an instance of this class as parameter:</p>
  
  <pre><code>public List&lt;Address&gt; SearchAddress(Address search)
  {
      ...
      if (!search.Name.Equals(string.Empty))
      {
          temp = query.Where(a =&gt; a.Name.Contains(search.Name));
      }
      ...
  }
  </code></pre>
  
  <p>Now my colleague called this method and i got a <code>System.ArgumentNullException</code> because <code>search.Name</code> is <code>null</code>. </p>
  
  <p>If i have a non-nullable <code>int</code> property i get <code>0</code> as value if i don't assign anythig to it.</p>
  
  <p>Why is a non-nullable <code>string</code> property <code>null</code> if no value is assigned and not just <code>string.Empty</code>?</p>