zoukankan      html  css  js  c++  java
  • 【原创C#】可空类型 ?和??

    可空类型可以表示所有实际类型的值加上null。如果和数据库打交道,这就会很有用,因为在数据库表中遇到未定义的列是很常见的事情。

    为了定义一个可空变量类型,应在底层数据类型中添加问号(?)作为后缀。注意,这种语法只对值类型是合法的,局部可空变量必须赋值一个初始值

    //定义一些局部可空类型
    int? a =10;
    double? b=3.14;
    bool? c=null;
    char? d= 'a';
    int?[] e=new int?[2];

    //错误!字符串是引用类型
    string? s="zhxdean";

    ??操作符,在获得的值实际上是null时,我们可以用这个操作符给一个可空类型(不单单是值类型,也可以是引用类型)赋值。使用??操作符的好处是,他比传统的if/else语法更加紧凑。

    可空类型例子:

    class Program
    {
    static DataTable dt = new DataTable();
    static void Main(string[] args)
    {
    Cat c
    = new Cat();
    //c.Age()获得的值是null,mydata=10
    int mydata = c.Age() ?? 10;
    //c.Name获得值是null,myname=zhxhdean
    string myname = c.Name ?? "zhxhdean";
    //c.GetName()获得值是null,mydata1=zhxhdean
    string myname1 = c.GetName() ?? "zhxhdean";
    Console.ReadKey();
    }

    }
    class Cat
    {
    //值类型的可空类型需要加?
    private int? age = null;
    public int? Age()
    {
    return age;
    }

    //注意string类型不能有?
    private string name = null;
    public string Name
    {
    get { return name; }
    set { name = value; }
    }
    public string GetName()
    {
    return name;
    }
    }

    参考书籍:《C#与.NET4高级程序设计(第5版)》
  • 相关阅读:
    JetBrains Rider 在 Mac 环境下将 cs 文件生成 exe
    Unity3d 控制物体移动、旋转、缩放
    Unity3d 脚本使用规则
    Unity3D 脚本模板修改方法
    Intelli IDEA 设置项目编码(Mac)
    搭建LayaBox的生产环境,并helloWorld
    unity Lighting
    流畅度测试
    Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]
    Unity GUI(uGUI)使用心得与性能总结
  • 原文地址:https://www.cnblogs.com/zhxhdean/p/2090675.html
Copyright © 2011-2022 走看看