您的位置:首页 > Web前端

Effective C# 学习笔记(十九)确保0(null)对于值(引用)类型是一个合法(理)的默认值

2011-07-09 23:23 387 查看
默认情况下,.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;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: