`
emowuyi
  • 浏览: 1482021 次
文章分类
社区版块
存档分类
最新评论

C#中问号的使用

 
阅读更多

今天写程序时,看MVC自代的例子时,C#中有两个奇怪的问号,一字问号提问网站见过,但二个,还是第一次哟:   public AccountController(IFormsAuthentication formsAuth, IMembershipService service)
{
FormsAuth = formsAuth ?? new FormsAuthenticationService();
MembershipService = service ?? new AccountMembershipService();
}网上搜下,总结如下:

1. 可空类型修饰符(?): 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。 例如:string str=null; 是正确的,int i=null; 编译器就会报错。 为了使值类型也可为空,就可以使用可空类型,即用可空类型修饰符"?"来表示,表现形式为"T?" 例如:int? 表示可空的整形,DateTime? 表示可为空的时间。 T? 其实是System.Nullable<T>(泛型结构)的缩写形式,也就意味着当你用到T?时编译器编译 时会把T?编译成System.Nullable<T>的形式。 例如:int?,编译后便是System.Nullable<int>的形式。

2. 三元(运算符)表达式(?:): 例如:x?y:z 表示如果表达式x为true,则返回y;如果x为false,则返回z,是省略if{}else{}的简单形式。

3. 空合并运算符(??): 用于定义可空类型和引用类型的默认值。如果此运算符的左操作数不为null,则此运算符将返回左操作数,否则返回右操作数。 例如:a??b 当a为null时则返回b,a不为null时则返回a本身。 空合并运算符为右结合运算符,即操作时从右向左进行组合的。如,“a??b??c”的形式按“a??(b??c)”计算。

分享到:
评论

相关推荐

    C#中的问号(?号)用法小结

    主要介绍了C#中的问号(?号)用法小结,本文介绍了3种用法,分别作为修饰符、运算符的用法,需要的朋友可以参考下

    C# 运算符 ?、??、?: 各种问号的用法和说明

    本文介绍C#中三种常见的问号运算符的使用方法,简单讲解给大家,希望对大家有所帮助。

    C# mysql 插入数据,中文乱码的解决方法

    用C#操作mysql时, 插入数据中文都是乱码,只显示问号,数据库本身使用的是utf-8字符

    轻松学C#(图解版)

    5.2.1 问号运算符 73 5.2.2 if语句 74 5.2.3 if…else语句 75 5.2.4 if…else…if语句 76 5.2.5 switch语句 77 5.3 循环语句 80 5.3.1 while语句 80 5.3.2 do-while语句 81 5.3.3 for语句 82 5.3.4 foreach语句 85 ...

    WebSevice 中文乱码

    WebSevice 中文乱码

    C#邮件收发,收件有点乱码

    真正能用的邮件系统,收件有点乱码没有能成功处理,但是系统高手能解决这个问题

    C# null 合并运算符??(双问号)使用示例

    主要介绍了C# null 合并运算符??(双问号)使用示例,?? 运算符称作 null 合并运算符。如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数,需要的朋友可以参考下

    vs自带数据库sql server的中文插入乱码问题、查找当前数据库名

    如图所示,我插入表的中文变成了问号 解决思路: 1、是我的表建立时字段类型不支持中文? 2、数据库的排序规则错误? 3、写入数据库时的数据编码问题? 第一种情况:把nchar改成nvarchar即可 我试了一下,在表格内...

    C#扫雷游戏包含源代码

    用C#语言编写的扫雷游戏,模仿微软扫雷游戏,功能包括标记,问号标记,鼠标双键功能,添加自动标记功能

    C#中File类的文件操作方法详解

    本文实例讲述了C#中File类的文件操作方法。分享给大家供大家参考。具体分析如下: File类,是一个静态类,主要是来提供一些函数库用的。静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,...

    C#读取中文文件出现乱码的解决方法

    本文实例讲述了C#读取中文文件出现乱码的解决方法。分享给大家供大家参考。具体分析如下: 先来看这段代码: FileStream aFile = new FileStream(SingleFile,FileMode.Open); StreamReader sr = new StreamReader(a...

    印度人写的C#代码

    由liudao汉化改造 &lt;br&gt;改造部分: 去除了部分“印度”字样 使数据库等等支持中文字符(修改排序规则,否则中文会变成问号) 翻译了大部分菜单及控件名称 &lt;br&gt;默认管理员账号密码均为51aspx

    Java-PHP-C#

    在表达式中如果含有分隔符,那么就需要使用转义符号"\",比如"/hello.+?\/hello/is"。转义符号除了用于分隔符外还可以执行特殊字符,全部由字母构成的特殊字符都需要"\"来转义,比如"\d"代表全体数字。 4 正则...

    详解c# 可空类型(Nullable)

    C# 单问号 ? 与 双问号 ?? ? : 单问号用于对 int,double,bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 NullAble 类型的。 int? i = 3 等同于 Nullable&lt;int&gt; i = new Nullable(3);...

    C#翻牌游戏,有源代码。标题不够长

    游戏开始时,有些牌是正面朝上(可以看见图片),有些牌是反面朝上(只能看见一个问号)。游戏的目标就是让所有的牌都是正面朝上,让图片显示出来。鼠标点击某张牌,即可使那张牌翻过来,正面的会变成反面,反面的...

    C#进程管理进程管理器

    PID 优先级 CPU时间 进程ID 虚拟内存 工作集 模块名 文件描述 版本号 同样5分 好了加分 点里面的问号帮助

    C#实现简易扫雷实验项目

    这个项目就是利用C#编写一个Windows系统下的扫雷小游戏。 游戏玩法 (1) 扫雷就是要把所有非地雷的格子揭开即胜利;踩到地雷格子就算失败。 (2) 当点开的格子不是地雷区域的时候,该格子会显示一个数字,该数字表示的...

Global site tag (gtag.js) - Google Analytics