如何为整个项目启用 C# 8.0 的 Nullable Reference Types 功能

2023-11-26

根据C# 8 公告视频可以为整个项目启用“可为空引用类型”功能。

但如何为项目启用它呢?我在 Visual Studio 2019 Preview 1 的“项目属性”窗口中没有找到任何新的合适选项。

是否可以启用“旧版”.csproj项目如果C#语言版本改为8.0?


要为项目中的所有代码启用可空引用类型,请将以下内容添加到其.csproj file:

<PropertyGroup>
  <Nullable>enable</Nullable>
</PropertyGroup>

或者打开项目属性 UI,搜索nullable并选择您想要的选项:

enter image description here


要在解决方案的所有项目中启用此功能,请将该属性添加到Directory.Build.props文件代替。您也可以使用此类文件来指定多个项目的其他属性。


如果您的目标版本是早于netcoreapp3.0,你还需要设置LangVersion到 8 或更高,因为 C# 8 中添加了可空引用类型:

<PropertyGroup>
  <Nullable>enable</Nullable>
  <LangVersion>8.0</LangVersion>
</PropertyGroup>

对于较旧的 Visual Studio 版本:

  • 您必须至少使用 VS 16.0
  • 在16.0预览1中,设置NullableReferenceTypes to true.
  • 从16.0预览2到16.1,设置NullableContextOptions to enable.
  • 从 16.2 预览版 1 开始,使用Nullable如上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为整个项目启用 C# 8.0 的 Nullable Reference Types 功能 的相关文章

  • 模板类的不明确多重继承

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的

随机推荐

  • JSON 对象返回未定义的值

    我从 http 调用接收到一个 JSON 对象 并尝试从中提取值 JSON 对象包含 data userid 007 role spy 我使用以下代码来分配role属性到另一个变量 然后进行一些控制台日志检查 currentUserRole
  • SQL Server:将多行合并为一行

    我有一个这样的 SQL 查询 SELECT FROM Jira customfieldvalue WHERE CUSTOMFIELD 12534 AND ISSUE 19602 这就是结果 我想要的是 显示在一行 单元格 中合并所有STRI
  • 在 ARC 下,当通过属性分配给 ivar 时,块是否会自动复制?

    Assume typedef void MyResponseHandler NSError error property strong nonatomic MyResponseHandler ivarResponseHandler synt
  • 将 CCSprite 缩放至精确尺寸

    将精灵缩放到精确尺寸的最佳技术是什么 缩放属性是一个乘数 但是如果您希望精灵的宽度恰好为 X 像素 有没有简单的技术 或者 是否需要简单地使用所需的尺寸和实际的精灵contentsize来计算必要的scale手术 我相信这有效 void r
  • 对于带有 ActiveX 控件的对话框,CDialog::Create 失败

    我有一个模块 可以创建包含 ActiveX 控件的无模式对话框 该模块是 MFC EXE 应用程序的一部分 对话框的创建工作正常 最近 我将模块移出到 ATL COM 服务器中 并将对话框资源从 EXE 复制到 COM 服务器中 当尝试使用
  • 如何检查curl是否启用或禁用

    可能的重复 在php中编写一个函数 我正在使用以下代码 echo Curl function exists curl version Enabled Disabled 这可以启用或禁用它 但我想让 as 函数说函数名称是 iscurl 然后
  • 我什么时候应该使用向量::at而不是向量::operator[]?

    我知道at 慢于 因为它的边界检查 这也在类似的问题中进行了讨论 例如C Vector at 运算符速度 or std vector at 与 operator 我只是不明白这是什么at 方法是有好处的 如果我有一个像这样的简单向量 std
  • 查找 GDP 连续两个季度下降,并以 GDP 连续两个季度增长结束

    我有以下 df 其中包含 1947 年第一季度到 2016 年第二季度美国季度 GDP 的数据 以 2009 年数十亿美元计算 df pd DataFrame data 1934 5 1932 3 1930 3 1960 7 1989 5
  • MSBuild 解决方案命令行输出到各个文件夹

    目前 我有以下 MSBuild 命令 msbuild t Build p Configuration Release p OutputPath C MySolutionOutput MySolution sln 但是 它可以编译 我的解决方
  • 动态更新 iPython 笔记本中的绘图

    如中提到的这个问题 我正在尝试在 iPython 笔记本 在一个单元格中 中动态更新绘图 不同之处在于我不想绘制新线 但我的 x data 和 y data 在某个循环的每次迭代中都在增长 我想做的是 import numpy as np
  • 如何在Python中将两个列表合并为一系列列? [复制]

    这个问题在这里已经有答案了 假设我有两个列表 t1 abc def ghi t2 1 2 3 如何使用 python 合并它 以便输出列表为 t abc 1 def 2 ghi 3 我尝试过的程序是 t1 abc def t2 1 2 t
  • 如何使用jquery按名称获取元素?

    如何使用 jquery 按名称获取 html 元素而不使用 id 或 class 有什么办法可以做到这一点吗 应该知道 给出的唯一正确答案是在属性值周围包含引号的答案 即 name value 强制要求在值周围包含引号 请参阅 http a
  • 将 PHP JSON 传递给 Javascript:echo json_encode 与 echo json 声明

    我正在尝试创建一个通用常量文件以在 php 和 javascript 之间共享 使用 JSON 来存储常量 但我想知道为什么使用 JSON 将 PHP 从 PHP 传递到 javascriptjson encode 过度回显 json 声明
  • Java 拉伸图标以适合按钮

    我正在尝试调整图标大小 使其覆盖整个按钮并位于按钮的中心 当我尝试时 它会拉长我的按钮并弄乱其他所有内容 我该怎么做 目前 我的代码是 在我的类构造函数中 javax swing JButton Console new javax swin
  • 根据列名称创建 DataFrame 的子集

    我有一个名为的 pandas DataFrametimedata具有不同的列名称 其中一些包含振动一词 一些包含偏心率 是否可以创建仅包含 振动 一词的列的数据框 我尝试过使用 vib for i in timedata if Vibrat
  • 在具有多个用户的 Visual Studio 中使用 MSDeploy/Web 部署作为发布方法

    是否可以从多个开发人员 PC 使用 Web 部署 当我们尝试这样做时 当其他人想要进行部署时 我们似乎需要重新发布所有内容 我们是否做错了什么 有没有办法解决这个问题 或者在我们的场景中推荐的方法是什么 我知道从中央位置部署是一个更好的解决
  • 如何使用 Azure.Storage.Blobs BlobClient 检索 Blob 目录路径中的 Blob?

    我没有在网上看到任何关于如何获取位于某个目录中的所有 blob 的示例BlobContainerClient 以前 我使用的是Microsoft Azure Storage包 但这些已被弃用 我扫描目录中所有 blob 的旧代码是 publ
  • 使用模型后如何清除GPU内存?

    我正在尝试在使用完模型后释放 GPU 内存 我检查了nvidia smi在创建和训练模型之前 402MiB 7973MiB 创建并训练模型后 我再次检查了 GPU 内存状态nvidia smi 7801MiB 7973MiB 现在我尝试使用
  • Google Storage 不是构造函数错误

    我正在构建一个应用程序 我的目标是每次有人将图像上传到 firebase 存储时 云函数都会调整该图像的大小 import as Storage from google cloud storage const gcs new Storage
  • 如何为整个项目启用 C# 8.0 的 Nullable Reference Types 功能

    根据C 8 公告视频可以为整个项目启用 可为空引用类型 功能 但如何为项目启用它呢 我在 Visual Studio 2019 Preview 1 的 项目属性 窗口中没有找到任何新的合适选项 是否可以启用 旧版 csproj项目如果C 语