zoukankan      html  css  js  c++  java
  • EffectiveC#8--确保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。

  • 相关阅读:
    CFgym102394I
    Infinite Fraction Path (后缀数组)
    2016ACM/ICPC亚洲区沈阳站-重现赛
    2sat学习笔记
    bzoj4176
    bzoj3309
    6C
    3U
    3T
    3R
  • 原文地址:https://www.cnblogs.com/tiantianle/p/4870240.html
Copyright © 2011-2022 走看看