突然的结论
统一版本是2020.1然后,骑士如果您用作 IDE
禁止常见警告您可能需要小心设置。
背景
你在用骑手吗?不用说,它是 JetBrains 出品的专门用于 C# 开发的 IDE。
好点数不胜数,但其中代码补全功能和代码自动生成功能特别精彩,我想Unity区用的人不少。
今天我踩到了一个与Rider有关的陷阱,让我来介绍一下。
Alt(选项)+ Enter
使用 Alt(Option) + Enter,Rider 为您提供上下文代码完成和代码生成建议。
其中,下面的案例比较方便,我也经常用
我有一个已经有构造函数的类
当您在此处添加private成员变量并希望在构造函数中初始化该成员变量时(通常在使用 DI 时)
将光标放在该成员变量上按 Alt(Option)+Enter
如果选择“Initialize field from constructor”快速操作
任意增加已有构造函数的参数 + 在已有构造函数中初始化这就是它的意思。 “这很简单,但超级方便。”
具体有这样一个类(本例假设使用了VContainer,进行了构造函数注入)
private MyStopWatch _stopWatch;到成员变量,按 Alt (Option) + Enter 并从 Quick Actions 中选择“
Initialize field from constructor”,如果您也希望使用构造函数对其进行初始化然后,
这样,在构造函数中初始化的代码就自动生成了。
超级方便,不是吗?
仅此一项就不会让您想购买Rider吗? (有费用,但应该值得!)然而
是的。方便的。
但在我的环境中,总有一天使用私有成员变量,这一系列操作不再可能
像这样,不显示目标“Initialize field from constructor”。e.为什么?更有趣的是(?)如果将成员变量访问作业设置为
public,“Initialize field from constructor”将作为候选出现。
“我是不是对Rider的设置做错了什么?”解决不了~~~
(*顺便说一句,使用
ctorf代码段,您还可以自动生成使用构造函数初始化所有字段的代码,但是这样会生成一个新的构造函数并且它变得重载,所以我根本不想要它。不存在的解决方案。堆栈溢出也有类似的交流。 )顺便问一下,原因是什么?
禁止常见警告
在这里,我们回到开始。
原因是团结 2020.1介绍自禁止常见警告那是设定。这是小金博客虽然也有介绍,但粗略来说,在Unity中比较容易出现警告忽视就是这样的设定。
通过打开这个设置,几乎可以忽略的警告不会出现,所以很好,但问题是它会通过这个检查生成(更新)。项目 (csproj) 文件是。
由于 csproj 文件是文本文件,因此可以使用文本编辑器等查看内容,但在其中
<NoWarn>0649,0169</NoWarn>
你可以找到设置我认为这是因为 Unity 在创建 csproj 文件时处理了它并添加了它。实际上,这两个
0169之一是导致此问题的原因。一直流到踩到陷阱
如果选中此 Suppress Common Warnings in Unity 设置,CS0169 "private field 'XXXX' was never used" 将被抑制
↓0169(和 0649)也在 csproj 文件中添加为NoWarn
↓
原因不明,但似乎 Rider 会选择以这个警告为触发的快速行动,并通过压制警告
“Initialize field from constructor”将不再作为候选人出现我踩到了组合。谁该受责备
补充
顺便说一句,如果你创建一个名为 csc.rsp 的文件并在其中写入
-nowarn:0169,同样的警告抑制也会添加到 csproj 文件中,所以
(这也是小金博客(看喜欢)
即使在 Unity2020.1 之前的版本中,它似乎也会发生。
(如果您认为 Rider 的完成候选者很奇怪,最好怀疑 csc.rsp 文件的存在。)和这个禁止常见警告环境,默认开启就像是...
所以似乎还有其他人在不知不觉中踏入这个陷阱。
我写这篇文章是为了提醒和提醒。奖金
csproj文件创建时间
csproj 是在 Unity 端创建的,但除非更新 csproj 文件,否则 NoWarn
0169不会仅通过更改 Unity 端的设置而消失。
如果添加或删除一个cs文件,它会更新,但我认为将csproj文件删除一次也是一个好主意。肯定会更新。我要压制 CS0649
如果你压制CS0169,我想你已经明白Rider的候选人有点好,但是CS0649的警告很烦人,所以我想压制它。
如果csc.rsp-nowarn:0649最好将仅指定 0649 的文件放在 Assets 下。
(但是,这个0649也成为Rider候选人之一的触发的可能性不为0,所以请您自担风险。)有一个美好的骑士生活。
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308626761.html