C#中的单问号(?)和双问号(?)的作用以及使用的场合?
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/23 01:36:14
C#中的单问号(?)和双问号(?)的作用以及使用的场合?
![](http://img.wesiedu.com/upload/c/85/c854d1e7b7f325619320a68359dd7639.jpg)
![](http://img.wesiedu.com/upload/c/85/c854d1e7b7f325619320a68359dd7639.jpg)
![C#中的单问号(?)和双问号(?)的作用以及使用的场合?](/uploads/image/z/17236272-48-2.jpg?t=C%23%E4%B8%AD%E7%9A%84%E5%8D%95%E9%97%AE%E5%8F%B7%EF%BC%88%3F%EF%BC%89%E5%92%8C%E5%8F%8C%E9%97%AE%E5%8F%B7%EF%BC%88%3F%EF%BC%89%E7%9A%84%E4%BD%9C%E7%94%A8%E4%BB%A5%E5%8F%8A%E4%BD%BF%E7%94%A8%E7%9A%84%E5%9C%BA%E5%90%88%3F)
DateTime?TaskStartDate 这里的 ,你的理解是对的.这个?的作用,是让原本不支持null值的类型,可以取值为null,例如:DateTime 和 int 类型,本身是不能=null的,加了?,就可以=null了.
Milestone.IsTask false,这里的 叫做 “null 合并运算符”,它的用法是:
如果此运算符的左边的值不为 null,就返回左边的值;否则返回右边的值.
再问: 那么这个双问号和三元运算符(:?)的用法是不是一样的呢?他们之间有什么异同呢?
再答: 有些相近,不相同。 string a = (1==0) ? "a" : "b"; 这是三元运算符,三元运算符,应用于判断bool值,如果是true,返回 : 前面的值,否则,返回 : 后面的值。 ?? 只是判断 它左边的值是否是 null。
Milestone.IsTask false,这里的 叫做 “null 合并运算符”,它的用法是:
如果此运算符的左边的值不为 null,就返回左边的值;否则返回右边的值.
再问: 那么这个双问号和三元运算符(:?)的用法是不是一样的呢?他们之间有什么异同呢?
再答: 有些相近,不相同。 string a = (1==0) ? "a" : "b"; 这是三元运算符,三元运算符,应用于判断bool值,如果是true,返回 : 前面的值,否则,返回 : 后面的值。 ?? 只是判断 它左边的值是否是 null。