Effective C# 学习笔记(十九)确保0(null)对于值(引用)类型是一个合法(理)的默认值
2011-07-09 23:23 小郝(Kaibo Hao) 阅读(283) 评论(0) 编辑 收藏 举报默认情况下,.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;
}
}
}
出处:http://www.cnblogs.com/haokaibo/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。