默认情况下,.net系统会把所有对象的默认值设置为0。一般情况下,你也没有什么方法可以将默认值设置为非0。但有一种情况例外,就是Enum类型,其可指定其默认值范围。代码如下:
public enum Planet
{
// Explicitly assign values.
// Default starts at 0 otherwise.
Mercury = 1,
Venus = 2,
Earth = 3,
Mars = 4,
Jupiter = 5,
Saturn = 6,
Neptune = 7,
Uranus = 8
// First edition included Pluto.
}
//这里的sphere就会为0,但他不是个合法的Planet
Planet sphere = new Planet();
//合适的做法为将0作为None,即不是所有的枚举值中的一个值来定义。
[Flags]
public enum Styles
{
None = 0,
Flat = 1,
Sunken = 2,
Raised = 4
}
对于引用类型的对象来说,一般都会默认初始化为null,但有些情况下需要特殊处理以保证其符合实际中的应用,如对于string类型的对象,一般会返回string.Empty,这比返回null在大多数情况下好的多。
public struct LogMessage2
{
private int ErrLevel;
private string msg;
public string Message
{
get
{
return (msg != null) ?msg : string.Empty;
}
set
{
msg = value;
}
}
}