码迷,mamicode.com
首页 > Windows程序 > 详细

EffectiveC#8--确保0对于值类型数据是有效的(初始化问题)

时间:2015-10-11 23:04:09      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:

1.决不要创建一个不包括0在内的枚举类型

2.举例如下:

public enum Planet {  Mercury = 1, Venus = 2, Earth = 3, Mars = 4, Jupiter = 5, Saturn = 6, Neptune = 7, Uranus = 8, Pluto = 9 }

  Planet sphere = new Planet();

     sphere此时的值就是0,而这并不是一个有效的值。这也会使得包含(Planet)这一类型的其它类型很难创建。

    假设某个结构体含有上述枚举类型的变量,创建这个实例的用户会创建一个不合法的Planet成员

建议做法:加入一个0值

public enum Planet { None = 0, Mercury = 1, Venus = 2, Earth = 3, Mars = 4, Jupiter = 5, Saturn = 6, Neptune = 7, Uranus = 8, Pluto = 9 }

3.值类型中包含了引用类型,字符串是一个常见的例子

public struct LogMessage { private int _ErrLevel; private string _msg; }

  LogMessage MyMessage = new LogMessage( );   _msg被初始为null。

EffectiveC#8--确保0对于值类型数据是有效的(初始化问题)

标签:

原文地址:http://www.cnblogs.com/tiantianle/p/4870240.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!