You can not. Structures are always pre-zeroed, and there is no guarantee that the constructor is ever called (for example, new MyStruct[10]). If you need non-zero defaults, you need to use a class. This is why you cannot change the default constructor in the first place (before C # 6) - it never executes.
, , Nullable , - , null :
public struct MyStruct
{
int? myInt;
public int MyInt { get { return myInt ?? 42; } set { myInt = value; } }
}
myInt - , "" ( 42). , :)
Console.WriteLine, ToString. , , .