2019-11-29-C#-在-8.0-对比-string-和-string_-的类型
2024-09-29 04:30:23
title | author | date | CreateTime | categories |
---|---|---|---|---|
C# 在 8.0 对比 string 和 string? 的类型
|
lindexi
|
2019-11-29 8:59:0 +0800
|
2018-12-20 09:15:30 +0800
|
C#
|
在 C# 8.0 的时候提供了可空字符串的判断,但是可空字符串和字符串的类型是不是不同的?
打开 VisualStudio 2019 这时就不能再使用 VisualStudio 2017 因为不支持
然后创建一个 dotnet core 项目,打开项目文件添加下面代码
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<LangVersion>8.0</LangVersion>
<NullableReferenceTypes>true</NullableReferenceTypes>
</PropertyGroup> </Project>
先详细介绍每一句话的意思
第一句 OutputType 的意思是输出是什么,这里选 Exe 就是输出控制台
通过 TargetFramework 可以设置平台,更多可以设置请看 从以前的项目格式迁移到 VS2017 新项目格式
在 LangVersion 设置使用的语言版本,详细请看 VisualStudio 使用三个方法启动最新 C# 功能
最后通过 NullableReferenceTypes 开启可空类型的判断
现在开始试试之前的其他可空的方法,如下面代码
Console.WriteLine(typeof(int).FullName);
Console.WriteLine(typeof(int?).FullName);
小伙伴都知道输出的 int 和 int?
是不同的
System.Int32
System.Nullable`1[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]
但是如果是 string 和 string?
的比较呢?
判断 typeof(string) == typeof(string?)
是不是相同的?
System.Console.WriteLine(typeof(string).FullName);
Console.WriteLine(typeof(string?).FullName);
Console.WriteLine(typeof(string) == typeof(string?));
其实在 C# 8.0 的 string?
是糖也就是实际不存在的,对于 string?
的类和 string 相同
System.String
System.String
True
最新文章
- IO流-----写到输出流
- window.print() 打印页面部分内容的方法
- java.lang.IllegalArgumentException: template not initialized; call afterPropertiesSet() before using
- 实现 像网易云音乐 播放列表那样的弹出型Dialog
- java设计模式--创建模式--工厂方法
- LeetCode OJ 11. Container With Most Water
- JS判断doctype文档模式-document.compatMode
- Angular.js学习笔记 (二)
- Java集合框架,未完
- Vue.js—实现图书管理系统
- Oracle索引详解
- BZOJ 4555: [Tjoi2016&;Heoi2016]求和 [分治FFT 组合计数 | 多项式求逆]
- 一个备份mysql 数据库的脚本
- 基于python的种子搜索网站-开发过程
- Cent os6.5 安装python3.2
- 使用 --image-repository 解决kubeadm 安装k8s 集群 谷歌镜像墙的问题
- codeforces 251 div2 D. Devu and his Brother 三分
- Java导出引用jar包的文件
- 1.Delphi Rest后台+MUI前台开发App前言
- rocketmq配置项说明(对应版本:4.0.0-incubating)
热门文章
- 【git】本地git bash连接远程库github
- ASP.NET图片防盗链(使用一般处理程序)
- Springboot2.x使用redis作为缓存
- leetcode 371两整数之和
- 保存json数据到本地和读取本地json数据
- pytest_1安装和启动
- 阶段3 2.Spring_05.基于XML的IOC的案例1_1 基于XML的IOC的案例-案例准备
- USACO4.1 Beef McNuggets【数学/结论】
- mysql——单表查询——其它整理示例01
- java 编码设计细节