Wednesday, April 29, 2015

C# Default Values of Types

This was not something I was aware of for many years, mostly because I would think it bad programming practice to not give instantiated objects a value.

But seems that is considered ok now, at least with C#.  Witness the extension methods in LINQ that specify "OrDefault".

Default Values Table (C# Reference)



The following table shows the default values of value types returned by the default constructors. Default constructors are invoked by using the new operator, as follows:
int myInt = new int();
The preceding statement has the same effect as the following statement:
int myInt = 0;
Remember that using uninitialized variables in C# is not allowed.
Value type
Default value
false
0
'\0'
0.0M
0.0D
The value produced by the expression (E)0, where E is the enum identifier.
0.0F
0
0L
0
0
The value produced by setting all value-type fields to their default values and all reference-type fields to null.
0
0
0

No comments: