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
  • 相关阅读:
    算法总结之 自然数组的排序
    算法总结之 计算数组最小和
    算法总结之 未排序数组中累加和小于或等于给定值的最长子数组长度
    算法总结之 未排序数组中累加和为给定值的最长子数组系列问题
    wget镜像网站并且下载到指定目录 2012-06-20 19:40:56
    用wget做站点镜像
    【亲测好用!】shell批量采集百度下拉框关键词
    网站发的文章有收录 但是没有排名怎么处理
    NGINX + LUA实现复杂的控制
    Linux下php安装Redis扩展
  • 原文地址:https://www.cnblogs.com/zwj-199306231519/p/11688616.html
Copyright © 2011-2022 走看看