C#中有没有办法向VS发信号以强制它忽略特定行的错误?
我有一个变量pos2,它只在某些时候被初始化(它是随机的)。但是,在初始化时,我同时设置了一个标志。
pos2 = new Vector3(2.5F, 0.624F, 75F);
secondCar = true;
稍后在代码中(在我的标志检查后面),我正常使用pos2,编辑器抛出错误。我经常使用这个脚本,所以我知道它没有被破坏,因为pos2是在旗帜检查后面,我知道我永远不会达到在未申报时使用pos2的点。
在Python中,您可以使用“@UnusedVariable”或类似的东西(我不记得确切),但我的VS编辑器继续向我抛出一个错误,我知道它永远不会达到这种情况。
答案 0 :(得分:3)
听起来你得到CS165关于使用未分配的局部变量的错误。简单地说,没有办法压制这个消息。 C#中的警告是可以抑制的,但错误不是。
今天,代码可能确实是正确的,并且正确使用了适当的门,例如您提到的secondCar
。然而,这些逻辑门对于下一个开发人员来说可能并不明显,甚至从现在开始大约一周左右。试图在C#中抑制这样的有效错误只是为未来的问题打开了大门。
我建议不要试图与编译器对抗,而是建议使用它。
答案 1 :(得分:3)
考虑使用Vector3?
(nullable type)代替Vector3
,因为无法抑制错误。
答案 2 :(得分:1)
您希望将变量初始化为null
或其他一些默认值。这样,错误就会消失,而不仅仅是被压制。
答案 3 :(得分:0)
有关详细信息,请参阅this answer,但通常情况下,您可以使用#pragma warning disable
来停用警告。
......我认为你的意思是警告,对吧?如果是错误,您的代码将无法编译,因此您不能忽略它。但你可以忽略警告。如果您确实遇到错误,只需使用变量初始化程序,如下所示:
int someVariable = 0;
YourClass someInstance = null;
然后编译器不会抱怨未初始化的变量。