zoukankan      html  css  js  c++  java
  • Effective C# 学习笔记(十九)确保0(null)对于值(引用)类型是一个合法(理)的默认值

    默认情况下,.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;

    }

    }

    }

  • 相关阅读:
    WTM
    Spring Cloud
    Dapper
    Linux 常用命令
    JsonNetResult
    百度 副文本编译器
    GIT使用—一些概念
    GIT使用—创建一个版本库
    GIT使用—安装配置及工作流程
    灰度发布
  • 原文地址:https://www.cnblogs.com/haokaibo/p/2102046.html
Copyright © 2011-2022 走看看