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版)》
  • 相关阅读:
    7. v-bind 绑定Class操作 【对象语法】
    7。 V-bind 绑定
    【离散化】
    【洛谷 1576】最小花费
    【洛谷 1078】文化之旅
    【POJ 2115】CLooooops
    【洛谷 1516】青蛙的约会
    【UOJ 270】电厂计划
    【UOJ 92】有向图的强联通分量
    【POJ 2186】Popular Cows
  • 原文地址:https://www.cnblogs.com/zhxhdean/p/2090675.html
Copyright © 2011-2022 走看看