当前位置:首页 > 技术积累 > 正文内容

C#中问号“?”的用法

竹林之风11年前 (2015-04-14)技术积累4573

        在C#中问号有单问号和双问号两种场景,其中单问号就是用于条件表达式的一个三元运算符;双问号有两个用法:可空类型修饰符和空合并运算符。

(1)条件表达式三元运算符:如x>y?a:b,即当x>y时表达式取值a,否则取值b;

c = x > y ? a : b;
//等价于
if (x > y) {
    c = a;
}
else {
    c = b;
}

(2)可空类型修饰符:int、bool等值类型不能赋值为null(空引用),为了使值类型也能赋值为空引用以表示不存在的值,引入了System.Nullable<T>(T为值类型),缩写即为T?,如int?表示System.Nullable<int>;

int? x = null;//可空类型默认值都是null,而值类型如int默认值为0、bool默认值为false等
bool? result = true;
/*
    当x为null且被引用时会引发“可为空的对象必须具有一个值”异常
    可空类型被引用或参与运算时,会调用Value属性,当可空类型未被赋值时即会引发此异常
*/
int y = x + 1;
x = 1;
y = x.Value;//将可空类型赋值给值类型时,使用Value属性

(3)空合并运算符:用于定义可空类型和引用类型的默认值,是右结合性运算符;

int y = x ?? 0;//当x为null时y取值0,否则取值x.Value,此运算符可简化可空类型null判断
int y = null == x ? 0 : x.Value;//与以上语句等价

扫描二维码推送至手机访问。

版权声明:本文由久爱编程网发布,如需转载请注明出处。

本文链接:https://www.9icode.com/index.php/post/8.html

标签: C#基础
分享给朋友:

“C#中问号“?”的用法” 的相关文章

实现网页原路返回:从哪个页面跳转过来就返回哪个页面

实现网页原路返回:从哪个页面跳转过来就返回哪个页面

一、需求        导航对于PC网站或WAP网站有着相当重要的作用,它有利于提升用户体验,不至于让用户迷路。而“返回”就是导航的功能之一,主要体现在WAP网...

HTTP长连接与短连接、长轮询与短轮询及长轮询的实现概述

HTTP长连接与短连接、长轮询与短轮询及长轮询的实现概述

        HTTP长连接(long connection)与短连接(short connection)本质上是TCP长连接和短连接:短连接是指在一次HTTP请求和响应之后立即关闭本次TCP连接,...

SVN源码版本控制目录方案

SVN源码版本控制目录方案

        SVN的目录规划:(1)trunk:主干目录,用于存放当前正在开发和维护中的源码版本,这是一个进行日常开发和维护的主要目录;(2)branche...

ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常问题解决

ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常问题解决

        ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常时,其中一个原因是:在已经重定向后又重定向。在ASP.NET中实现重定向有以下几...

ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常问题解决

ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常问题解决

        ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常,是因为设置Response的StatusCode之前,程序已设置响应标头。可从以...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。