<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 新的方式
