C#Nullable<T>可空的值类型,C#中的?使用整理
2016-12-22 18:08
302 查看
一、Nullable<T>可空类型,指定一个值类型可以分配null
在C#中Nullable<T>用于表示该类型是可以为空的一个类型。它被定义为结构(struct)而非一个类(class)....
语法 T? 是 System.Nullable<T> 的简写,此处的 T 为值类型。这两种形式可以互换,例如:Nullable<int>简写为int?
可空类型可表示一个值,或表示不存在任何值。例如,类似 String 的引用类型就是可空类型,而类似 Int32 的值类型不是可空类型。Nullable 结构支持将值类型扩展为可以为null,但不支持在引用类型上使用,因为引用类型本身就是可空的。
比较常用的场景是对应数据库表中可用字段。
实例:
二、C#中还有一种??,双问号这是C#6.0添加的Null值得条件操作符
??在赋值语句中使用,如果当前变量为Null,赋值右边的结果。
这个运算符可以解决三目运算符中可空类型判断问题:
实例:
更多:
C# 6.0新特性整理
C#编码规范整理
在C#中Nullable<T>用于表示该类型是可以为空的一个类型。它被定义为结构(struct)而非一个类(class)....
语法 T? 是 System.Nullable<T> 的简写,此处的 T 为值类型。这两种形式可以互换,例如:Nullable<int>简写为int?
可空类型可表示一个值,或表示不存在任何值。例如,类似 String 的引用类型就是可空类型,而类似 Int32 的值类型不是可空类型。Nullable 结构支持将值类型扩展为可以为null,但不支持在引用类型上使用,因为引用类型本身就是可空的。
比较常用的场景是对应数据库表中可用字段。
// // 摘要: // 表示可分配有 null 的值类型。 // // 类型参数: // T: // System.Nullable`1 泛型类型的基础值类型。 public struct Nullable<T> where T : struct { // // 摘要: // 将 System.Nullable`1 结构的新实例初始化为指定值。 // // 参数: // value: // 一个值类型。 [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] public Nullable(T value);
实例:
Nullable<int> number1 = null; //或者 //int? number1 = null; Console.WriteLine(number1); number1 = 2; Console.WriteLine(number1);
二、C#中还有一种??,双问号这是C#6.0添加的Null值得条件操作符
??在赋值语句中使用,如果当前变量为Null,赋值右边的结果。
这个运算符可以解决三目运算符中可空类型判断问题:
int num = number1 == null ? 0 : number1.Value;这种写法在语法上出错。
int num = number1 ?? 1;这种写法正确。
实例:
int? number1 = null;
int num = number1 ?? 1;Console.WriteLine(number1);
更多:
C# 6.0新特性整理
C#编码规范整理
相关文章推荐
- 《Effective C#》读书笔记——条目27:让类型支持序列化<使用C#表达设计>
- 【基础语言学习】C#中的可空类型运算(Nullable<T>)------T?
- 《Effective C#》读书笔记——条目3:推荐使用is或as而不是强制转换类型<C#语言习惯>
- C#类型的转换:Converter<TInput, TOutput> 委托的使用
- C#_delegate - Pair<T> & 简单顺序逆序 & 方法委托(在Pair类下)&枚举类型 混搭使用
- System.Nullable<T> int? 数据库中的int类型可以为空 在C# 中 的处理
- 理解null值和C#中可空类型(NullAble<T>)
- 可空类型(Nullable<T>)及其引出的关于explicit、implicit的使用
- 深入理解 c# 第四章 使用Nullable<T>的各个成员
- 读<<CLR via C#>>总结(5) 如何合理使用类型的可见性和成员的可访问性来定义类
- 理解C#值类型与引用类型 <转载>
- [C#/ASP.NET]List<>中Sort()、Find()、FindAll()、Exist()的使用方法
- C# Action<T> 使用
- Int? 代表什么意思, 可为空的值类型(Nullable<T>)需要注意的地方
- 读<<CLR via C#>>总结(3) 值类型和引用类型的区别
- 读<<CLR via C#>>总结(2) 对象创建的原理和两种类型转换方法
- error C2027: 使用了未定义类型 std::basic_ifstream<_Elem,_Traits>
- [转]开源日志库<log4cplus+VS2008使用>整理
- WF4.0 Beta2:Switch<T>活动中使用复杂类型
- 【More Effective C#】掩藏在Nullable<T>后的秘密