zoukankan      html  css  js  c++  java
  • C#其它特性(可空类型,空合并操作符,匿名方法)

    1.可空类型:表示在值类型的正常取值范围内再加上一个null值

      (1)结构:可空类型是泛型结构Nullable<T>的实例,其声明为:public struct Nullable<T> where T : struct,语法T?是Nullable<T>的简写形式,这两种形式是等效的:

               Nullable<int> myNullableInt = new Nullable<int>(),等价于int ? myNullableInt = null;

      (2)可空类型包含以下实例成员:

        1).HasValue:只读属性,判断是否有值,如果当前值非空,返回true,否则返回false

        2).Value:只读属性,如果当前值非空,可以正常访问,否则说明Value不包含有意义的值,此时访问Value时会抛出异常InvalidOperationException

        3).GetValueOrDefault():实例方法,如果当前值非空(HasValue为true),返回Vlaue的值,否则返回T类型的默认值(即私有字段value的默认值)

        4).GetValueOrDefault (T defaultValue):实例方法,如果当前值非空(HasValue为false),返回Vlaue的值,否则返回默认值defaultValue

    2.空合并操作符

      空合并即  ??     他会对左右两个操作数进行判断:如果左边的书不为null,则返回左边的书,如果左边的书为null,则返回右边的书,这个操作符可以用于可空类型和引用类型,但是不能用于值类型,因为??

      会将左边的数和null进行比较,值类型是不能与null比较的。

      例子:

        int ? nullable = null;

        int ?  nullhasvalue = 1;

        int  temp = nullable??12 = 12;

        int temp1 = nullhasvalue??123 = 1;

    3.匿名方法

      就是没有名字的方法,所以只能在定义的时候调用,其他时候无法调用。

      class Program
           {
              delegate void VoteDelegate(string name);
              static void Main(string[] args)
              {
                  VoteDelegate votedelegate = delegate(string nickename) { Console.WriteLine("{0}来投票了", nickename); };
                  votedelegate("张三");
                  Console.Read();
              }
            }

      以上代码的好处:使用了匿名方法,则不需要单独定义一个vote方法,减少了代码行数,更有利于程序阅读

    111
  • 相关阅读:
    7 MSSQL数据库备份与恢复
    6.Netbackup-Oracle数据库恢复演练报告(下)
    5、Oracle备份(oracle备份脚本配置)
    1.6 NBU Catalog备份还原
    标示符和关键字的总结--希望别再犯错
    JDBC_基础6步骤- 及优化
    算法总结
    bootstrap-全局CSS&js插件
    bootstrap入门&栅格系统
    JavaScript中的事件
  • 原文地址:https://www.cnblogs.com/zwj-199306231519/p/11688616.html
Copyright © 2011-2022 走看看