天天看点

2019-4-16-C#-在-8.0-对比-string-和-string_-的类型

<col>

title

author

date

CreateTime

categories

C# 在 8.0 对比 string 和 string? 的类型

lindexi

2019-04-16 10:16:56 +0800

2018-12-20 09:15:30 +0800

C#

在 C# 8.0 的时候提供了可空字符串的判断,但是可空字符串和字符串的类型是不是不同的?

打开 VisualStudio 2019 这时就不能再使用 VisualStudio 2017 因为不支持

然后创建一个 dotnet core 项目,打开项目文件添加下面代码

先详细介绍每一句话的意思

第一句 OutputType 的意思是输出是什么,这里选 Exe 就是输出控制台

通过 TargetFramework 可以设置平台,更多可以设置请看 ​​从以前的项目格式迁移到 VS2017 新项目格式​​

在 LangVersion 设置使用的语言版本,详细请看 ​​VisualStudio 使用三个方法启动最新 C# 功能​​

最后通过 NullableReferenceTypes 开启可空类型的判断

现在开始试试之前的其他可空的方法,如下面代码

小伙伴都知道输出的 int 和 ​<code>​int?​</code>​ 是不同的

但是如果是 string 和 ​<code>​string?​</code>​ 的比较呢?

判断 ​<code>​typeof(string) == typeof(string?)​</code>​ 是不是相同的?

其实在 C# 8.0 的 ​<code>​string?​</code>​ 是糖也就是实际不存在的,对于 ​<code>​string?​</code>​ 的类和 string 相同

​​VisualStudio 2019 尝试使用 C# 8.0 新的方式​​

​​

2019-4-16-C#-在-8.0-对比-string-和-string_-的类型