I trying to understand why a non-nullable string initializes to null instead of an empty string. For example:
//Property of class foo public string Address_N
There is no such thing as a "non-nullable string".
String is a reference type, so its default value is indeed a null.
You could get around the issue by setting the value to String.Empty in the constructor for your class (foo).
String.Empty