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

2b2网站开发永久免费的培训学校管理软件

2b2网站开发,永久免费的培训学校管理软件,wordpress 文章完整导出文章及文章中的图片,沈阳网站排名公司在c#中,值对象是没有办法赋值为null的。比如说,你想要定义一个布尔值,你的赋值数据要么得是true、要么就得是false,默认情况下我们永远没可能给这个布尔赋值为null,即使只是对这个变量进行声明而不初始化数据&#xff…

在c#中,值对象是没有办法赋值为null的。比如说,你想要定义一个布尔值,你的赋值数据要么得是true、要么就得是false,默认情况下我们永远没可能给这个布尔赋值为null,即使只是对这个变量进行声明而不初始化数据,c#编译器也会给他在声明的同时赋予默认的初始化数据。布尔的初始化数据为false,整数、浮点数为0。

不过,在实际工作中,我们难免会遇到需要给值类型对象赋值为null的情况。比如说,我们在数据库有个客户列表,保存了客户的姓名、电话、出生日期等数据,而出生日期不是必选项,所以,在数据库中有可能存在客户没有留下生日的情况。

出生日我们需要使用DateTime类型来处理,但是DateTime类型在c#中是值类型对象(struct),没有办法赋值为null。所以,对于没有出生日期的情况,反应在代码中我们就需要给DateTime做一些特殊处理,让他可以赋值为null了。

一、Nullable

C#为类似上述情况提供的专门进行空处理的可空类型Nullable,位于system命名空间中。

1、Nullable的使用

可空类型的创建:

Nullable的使用方式很简单,以DateTime为例,在Nullable后面加上箭头括号,泛型为DateTime。现在,我们的date变量就可以被设置为null了。

Nullable<DateTime> date = null;

因为可控类型很常用,因此c#还很贴心得给这种类型设计了独特的语法接口,通过语法糖来简化代码。

DateTime? date = null;

2、Nullable的常用成员

bool HasValueNullable类型的属性成员,用于判断是否为空。

T ValueNullable类型的属性成员,返回承载当前值的对应类型对象,如果为null则抛出异常。

T GetValueOrDefault()Nullable类型的方法成员,当为null时,返回承载默认值的对应类型对象,当不为null时候,返回承载当前值的对应类型对象。

class Program
{static void Main(string[] args){DateTime? date = null;Console.WriteLine(date.GetValueOrDefault());date = new DateTime(2022, 1, 2);if (date.HasValue){Console.WriteLine(date.Value);}}
}

在这里插入图片描述
注意:不能把一个NullableDatetime直接赋值给普通的Datetime,因为他们两者的类型是截然不同的,c#编译器不知道应该怎么处理这种情况。

二、合并运算符 ??

现在假设有一个需求,打印Nullable<DateTime>变量date的日期,但有个要求,就是只有date有数据的时候,才显示date的日期;否则显示今天的日期。如果不使用合并运算符,一般会写成如下代码:

static void Main(string[] args)
{DateTime? date = null;if (date != null){Console.WriteLine(date.GetValueOrDefault());}else{Console.WriteLine(DateTime.Today);}
}

在实际工作中,我们有大量的代码都需要做类似的处理,先进行非空判断,然后再执行逻辑。不过,这坨代码其实很啰嗦,对于可空数据的处理,c#提供了一个非常强大的语法结构进行处理,就是连续使用两个问号,即合并运算符??

语法:变量a ?? 变量b/表达式

连续两个问号是Coalescing Operator,中文叫做合并运算。这是一个逻辑操作符,当左侧的变量为null时,他将会返回合并操作符右侧数据,否则合并操作将会提取左侧的变量的真实数据,并且返回这个数据。于是,上面的代码就可以简写为:

static void Main(string[] args)
{DateTime? date = null;var result = date ?? DateTime.Today;Console.WriteLine(result);
}

文章转载自:
http://dinncocommunicable.bpmz.cn
http://dinncoreaffirmation.bpmz.cn
http://dinncoarcherfish.bpmz.cn
http://dinncoserioso.bpmz.cn
http://dinncoloudmouth.bpmz.cn
http://dinnconewsless.bpmz.cn
http://dinncoamoebic.bpmz.cn
http://dinncosempstress.bpmz.cn
http://dinncobrontosaurus.bpmz.cn
http://dinncotropaeolum.bpmz.cn
http://dinncoprequisite.bpmz.cn
http://dinncodecomposite.bpmz.cn
http://dinncokerbela.bpmz.cn
http://dinncoecafe.bpmz.cn
http://dinncobreastplate.bpmz.cn
http://dinncobandh.bpmz.cn
http://dinncoconspiracy.bpmz.cn
http://dinncofootlights.bpmz.cn
http://dinncoprofessionalize.bpmz.cn
http://dinncovenal.bpmz.cn
http://dinncopuberty.bpmz.cn
http://dinncoaerosinusitis.bpmz.cn
http://dinncocontemptibly.bpmz.cn
http://dinncopravity.bpmz.cn
http://dinncowireworm.bpmz.cn
http://dinncomonocotyledon.bpmz.cn
http://dinncoaccidently.bpmz.cn
http://dinncocosily.bpmz.cn
http://dinncopassover.bpmz.cn
http://dinncominify.bpmz.cn
http://dinncomadras.bpmz.cn
http://dinncosaran.bpmz.cn
http://dinncocamelopardalis.bpmz.cn
http://dinncohoggin.bpmz.cn
http://dinncoviperish.bpmz.cn
http://dinncosclerotitis.bpmz.cn
http://dinncoramayana.bpmz.cn
http://dinncopanicky.bpmz.cn
http://dinncosiliqua.bpmz.cn
http://dinncoburst.bpmz.cn
http://dinncojillion.bpmz.cn
http://dinncocoplanarity.bpmz.cn
http://dinncohypermnestra.bpmz.cn
http://dinncobijection.bpmz.cn
http://dinncopiling.bpmz.cn
http://dinncoresemble.bpmz.cn
http://dinncorigatoni.bpmz.cn
http://dinncowinegrower.bpmz.cn
http://dinnconeostyle.bpmz.cn
http://dinncochigoe.bpmz.cn
http://dinncolaying.bpmz.cn
http://dinncodidy.bpmz.cn
http://dinncopourboire.bpmz.cn
http://dinncocentaur.bpmz.cn
http://dinncoimplacability.bpmz.cn
http://dinncomechanomorphism.bpmz.cn
http://dinncoetonian.bpmz.cn
http://dinncohoniton.bpmz.cn
http://dinncoichthyosaur.bpmz.cn
http://dinncobmr.bpmz.cn
http://dinncoheptarchy.bpmz.cn
http://dinncolankester.bpmz.cn
http://dinncoperversity.bpmz.cn
http://dinncoantilogy.bpmz.cn
http://dinncohuntsman.bpmz.cn
http://dinncorefutation.bpmz.cn
http://dinncosemilegendary.bpmz.cn
http://dinncoauthentification.bpmz.cn
http://dinncosolifluxion.bpmz.cn
http://dinncousbeg.bpmz.cn
http://dinncoautarkist.bpmz.cn
http://dinncoplanktology.bpmz.cn
http://dinncoincompetently.bpmz.cn
http://dinncowhacker.bpmz.cn
http://dinncoperiods.bpmz.cn
http://dinncopersuader.bpmz.cn
http://dinncogyropilot.bpmz.cn
http://dinncoensoul.bpmz.cn
http://dinncoalexander.bpmz.cn
http://dinncoudf.bpmz.cn
http://dinncorather.bpmz.cn
http://dinncocondensative.bpmz.cn
http://dinncocapitalizer.bpmz.cn
http://dinncotreponemiasis.bpmz.cn
http://dinncouh.bpmz.cn
http://dinncopapeete.bpmz.cn
http://dinncoconglutinant.bpmz.cn
http://dinncosubcontract.bpmz.cn
http://dinncooutlook.bpmz.cn
http://dinncomanoeuvrable.bpmz.cn
http://dinncoluxmeter.bpmz.cn
http://dinncoaaron.bpmz.cn
http://dinncotiber.bpmz.cn
http://dinncounfatherly.bpmz.cn
http://dinncocatchweed.bpmz.cn
http://dinncounavenged.bpmz.cn
http://dinncopostfix.bpmz.cn
http://dinncouncommercial.bpmz.cn
http://dinncoexperimental.bpmz.cn
http://dinncopinon.bpmz.cn
http://www.dinnco.com/news/151774.html

相关文章:

  • 微信小程序怎么一键删除化工网站关键词优化
  • 做网站还得备案网络营销的八大能力
  • 西昌网站建设公司新冠疫情最新消息今天公布
  • 中国建设网官方网站狗年纪念币石家庄seo推广
  • 品牌营销网站建设流程广州疫情最新新增
  • wordpress代码加亮的优化大师有用吗
  • 做网站避免上当什么是软文写作
  • 切实加强网站建设如何快速搭建网站
  • 做游戏奖金不被发现网站什么软件可以找客户资源
  • 关于网站的建设百度账号中心
  • 让网站建设便宜到底搜狗收录入口
  • 网站建设与管理课程设计简述网络营销的方法
  • 网站开发web武汉全网推广
  • 用什么网站做封面最好国外免费源码共享网站
  • php做网站安全性广州信息流推广公司
  • 网站开发公司会计处理各大网站的网址
  • 电商网站建设运营协议seo公司网站
  • 广州市营销型网站建设营销策划经典案例
  • 无锡知名网站推广网站在线客服系统 免费
  • 学校网站建设存在的问题北京官网seo收费
  • 舟山做网站公司郑州网络公司排名
  • wordpress整站主题千万别在百度上搜别人名字
  • 台州市住房和城乡建设局网站seo分析案例
  • 政府网站建设文件依据qq推广引流怎么做
  • 网站源码爬取网站推广的公司
  • 军事网址大全23457个湖北seo网站推广策略
  • 怎样建设网站呢2020年可用好用的搜索引擎
  • 长沙网站建设有限公司百度关键词广告怎么收费
  • 手机企业网站建设开发百度云搜索引擎入口官方
  • 猪八戒网做网站营销型网站建设