T表示所有的基础值类型如:bool、int、char、double等
**定义可为null的变量**
```
double? pi = 3.14;
char? letter = 'a';
int m2 = 10;
int? m = m2;
bool? flag = null;
// An array of a nullable value type:
int?[] arr = new int?[10];
int? c = 7;
if (c != null)
{
Console.WriteLine($"c is {c.Value}");
}
else
{
Console.WriteLine("c does not have a value");
}
// Output:
// c is 7
```
始终可以使用以下只读属性来检查和获取可为空值类型变量的值:
* [Nullable.HasValue](https://learn.microsoft.com/zh-cn/dotnet/api/system.nullable-1.hasvalue)指示可为空值类型的实例是否有基础类型的值。
* 如果[HasValue](https://learn.microsoft.com/zh-cn/dotnet/api/system.nullable-1.hasvalue)为`true`,则[Nullable.Value](https://learn.microsoft.com/zh-cn/dotnet/api/system.nullable-1.value)获取基础类型的值。 如果[HasValue](https://learn.microsoft.com/zh-cn/dotnet/api/system.nullable-1.hasvalue)为`false`,则[Value](https://learn.microsoft.com/zh-cn/dotnet/api/system.nullable-1.value)属性将引发[InvalidOperationException](https://learn.microsoft.com/zh-cn/dotnet/api/system.invalidoperationexception)。
以下示例中的使用`HasValue`属性在显示值之前测试变量是否包含该值:
```
int? b = 10;
if (b.HasValue)
{
Console.WriteLine($"b is {b.Value}");
}
else
{
Console.WriteLine("b does not have a value");
}
// Output:
// b is 10
```
- Visual Studio 2022安装到非C盘
- .net平台区别
- 常用单词
- 关键字
- 操作符(运算符)
- 标识符(命名规范)
- 开始
- 变量
- 常量
- 数据类型
- 值类型
- 变量数据类型
- 枚举类型enum(常量集合)
- 结构类型struct(结构体)
- 元组类型
- 可null类型(T?)
- 引用类型
- 数组(array)
- 集合(List)
- 内置引用类型
- object
- string
- Dynamic(动态类型)
- delegate委托(代理)类型
- 自定义引用类型
- 接口(interface)
- 类class
- record(定义一个引用类型)
- 指针类型(仅用于非安全代码)
- get和set访问器
- delegate委托
- delegate实现发布订阅与事件
- 类型转换
- 合并操作符??
- 类相关
- Partial 部分类
- 类定义以及访问修饰符(封装)
- abstract抽象类与sealed密封类
- virtual虚方法
- 接口interface
- C# 预处理器指令
- C#技术栈
- 判断(流程控制)与三元运算
- if
- switch
- 三元运算
- 循环
- while 循环
- for循环
- foreach循环
- do...while 循环
- 文件操作
- 其他
- 多开