当前位置: 首页 > news >正文

网站公安系统备案seo自学网官方

网站公安系统备案,seo自学网官方,网站统计代码,怎样做QQ网站呢前言: 问:为什么会有可空值类型的诞生? 答:应对在某些特定场景中获取的信息可能是不完整的。 C# 1中的可空值类型 在C#1中没有对应的表示Null值的方法。当时普遍都是采用其他方式。第一种在数据缺失的情况下给其一个默认值。第…

前言:

问:为什么会有可空值类型的诞生?

答:应对在某些特定场景中获取的信息可能是不完整的。

C# 1中的可空值类型

        在C#1中没有对应的表示Null值的方法。当时普遍都是采用其他方式。第一种在数据缺失的情况下给其一个默认值。第二种是采用一个标识符来表示当前的数据是否有值。无论是哪种方式都会对我们的维护和多余的逻辑重复。

C# 2中的可空值类型

 可空值类型定义如下所示:

 在早期结构体的定义就是通过Nullable<T>T为我们需要传递的类型实参。T在结构体当中我门称呼为基础类型。如当前Nullable<int>结构体的基础类型是int。

举个例子:

Nullable<double> myNullable = new Nullable<double>();

提示:1 结构体会隐藏一个默认公共无参的构造器(结构体的共性) 2 结构体中的类型形参只支持值类型。(约束为 Struct的原因)如(int、double、decimal、long、float)

访问可空值类型 

  static void Main(){System.Nullable<int> myStruct = new System.Nullable<int>();//myStruct = 10;//HasValue: 指可空值类型中是否具有实际有效的值 if (myStruct.HasValue){// Value:指可空值类型结构中实际的值System.Console.WriteLine(myStruct.Value);}else{throw new System.Exception();}System.Console.ReadLine();}

 可空值类型提供的方法

无参的方法GetValueOrDefault
 static void Main(){System.Nullable<decimal> myStruct = new System.Nullable<decimal>();myStruct = 10;//输出10 System.Console.WriteLine(myStruct.GetValueOrDefault());System.Nullable<decimal> myStruct2 = new System.Nullable<decimal>();//输出基础类型的默认值//输出0 与 typeof(decimal)效果一致System.Console.WriteLine(myStruct2.GetValueOrDefault());System.Console.ReadLine();}

示例解释:

        当前的方法效果是当属性HasValue为true的时候是代表当前结构体是有实际值的情况下那么返回的就是当前结构体实际值,如果为false那么则返回当前实际结构体的基础类型的默认值 。

有参的方法GetValueOrDefault
   System.Console.WriteLine(myStruct.GetValueOrDefault(45));

示例解释:
        与上面一个无参的重载函数区别在于,当结构体并没有实际值的情况下那么返回的就是当前您传入的值。当结构体具有实际值的情况下那么返回的则是实际值。 

重写的Equals方法
   public override bool Equals(object other){if (!hasValue){return other == null;}if (other == null){return false;}return value.Equals(other);}

示例解释:当结构体与被比较的object类型的数据都不为null的情况下再进行比较 

可空值类型与基础类型的转换 

System.Nullable<int> myStruct = new System.Nullable<int>();
//可以隐式执行基础类型与 Nullable<int> 的转化
int ints = 0;
myStruct = ints;
//显示转换 则相反
int intss = (int)myStruct;

注意:在显示转换中如果可空值类型结构体没有值,则是默认值的情况下会抛出异常,因为当前的默认值将会是Null,null是无法赋值给非空的值类型的。

装箱行为

        装箱行为在可空类型与非可空类型是不同的,其中非可空类型被装箱时返回的结果类型就是原始的装箱类型,而可空类型发返回类型需要由 HasValue属性来决定,当HasValue为False时那么当前的非可空类型的引用则是Null 引用,为True时才是装箱时对应的数据类型的引用。

举个例子:

int X = default;
object o = X;
Console.WriteLine(typeof(int) == o.GetType());
Console.ReadLine();

示例解释:当前是非可空类型int 装箱到 object 类型中,返回的结果类型就是原始的装箱类型

//没有实际值
Nullable<int> @int = default;
object obj = @int;
Console.WriteLine(obj == null);//具有实际值
Nullable<int> @int2 = 1;
object obj2 = @int2;
Console.WriteLine(obj2 == null);Console.ReadLine();

示例解释:将可空类型装箱,运行将会报错 

 简化可空值类型特性

        C# 提供了 Nullable<T> 结构,允许值类型具有 null 值。通过使用 ? 后缀,可以创建可空版本的值类型。例如,int? 是一个可空的 int 类型。(按照编码习惯使用,或者按照项目编码习惯,二者编译的效果相同 产生IL的代码是一致的)

http://www.hkea.cn/news/157647/

相关文章:

  • 网站答辩ppt怎么做全网关键词云在哪里看
  • 网站建设 视频seo关键词词库
  • 网站应用软件设计成都网站建设技术外包
  • 用哪个软件做网站网址查询域名解析
  • 网站安全优化域名停靠浏览器
  • 我做中医培训去哪个网站找学员谷歌排名算法
  • 如何将网站让百度收录网店培训班
  • wordpress旧版页面编辑界面百度seo推广计划类型包括
  • 网站建设茶店网网站换友链平台
  • 珠海建设工程信息网站网络营销百度百科
  • 帮别人做网站推广犯法吗关键词排名网站
  • 建设通网站是政府的么高端网站定制设计
  • 玉溪做网站的公司夸克搜索网页版
  • wordpress导航主题haowseo挂机赚钱
  • 广州做家教的网站深圳网络推广招聘
  • 锐捷网络公司排名seo技术介绍
  • 新圩做网站公司拼多多代运营一般多少钱
  • 免费网站可以做cpa?短视频营销的优势
  • b2b外贸营销型网站如何做电商赚钱
  • 建设无障碍网站seo分析报告怎么写
  • 电子商务网站开发进什么科目模板自助建站
  • 威海市住房和城乡建设局官方网站北京seo营销公司
  • 开网页卡优化关键词排名工具
  • wordpress右侧文章归档东莞公司seo优化
  • 个人网站建设需求说明书免费外链生成器
  • 湖南网站建设的公司排名网页制作网站制作
  • 公司网页网站建设 ppt模板app开发公司排行榜
  • 网站开发yuanmus联合早报 即时消息
  • 为什么只有中国人怕疫情seo 页面
  • 网站开发总结报告十大门户网站