2012-03-30 336 views
2

在C#中,我可以向VS发信号以强制它忽略特定行上的错误吗?Visual Studio C#忽略错误

我有一个变量,pos2,只是初始化的一些时间(它是随机的)。但是,初始化时,我同时设置了一个标志。

pos2 = new Vector3(2.5F, 0.624F, 75F); 
secondCar = true; 

后来在代码中(我的国旗检查后面),我正常使用pos2,编辑器抛出一个错误。我经常使用这个脚本,所以我知道它没有被破坏,并且由于pos2在标志检查之后,我知道我永远不会在没有声明的时候使用pos2。在Python中,你可以使用“@UnusedVariable”或类似的东西(我不太清楚),但是我的VS编辑器不断向我抛出一个错误,我知道它永远不会达到这种情况。

+0

编译器不会执行足够深入的分析以可靠地检测到您只使用pos2的初始化值。这需要解决暂停问题。考虑使用Nullable来摆脱* secondCar *变量。也解决了这个错误。 – 2012-03-30 16:38:32

回答

3

考虑使用Vector3?nullable type)而不是Vector3,因为无法抑制错误。

+0

啊,这就是我一直在寻找的东西。我只是不知道!谢谢 – 2012-03-30 16:47:59

3

这听起来像你得到CS165有关使用未分配的局部变量的错误。简单地说,没有办法压制这个消息。 C#中的警告是可以抑制的,但错误不是。

今天的代码可能确实是正确的,并且使用适当的门,如你提到的secondCar。然而,这些逻辑门对于下一个开发人员来说可能并不明显,或者从现在开始的一个星期左右,你自己就不会明白。试图在C#中抑制这种有效的错误就是为未来的问题打开大门。

而不是试图在这里对抗编译器,我会建议使用它而不是。

0

有关更多详细信息,请参见this answer,但通常您可以使用#pragma warning disable来禁用警告。

......我假设你确实表示警告,对吧?如果这是一个错误,你的代码将不能编译,所以你不能忽略它。但是你可以忽略警告。如果你真的得到一个错误,只需使用一个变量初始化,就像这样:

int someVariable = 0; 
YourClass someInstance = null; 

那么编译器不会抱怨未初始化的变量。

+0

我相信OP是打CS 165,这是一个错误。不是100%肯定的,但这个问题似乎指向 – JaredPar 2012-03-30 16:32:17

+0

我完全同意你,JaredPar,使用这样的未初始化的变量正在走向不可维护的代码之路。我绝对不会用生产应用程序来做到这一点。 (但我承认,我已经完成了适用于我和我的应用程序 - 像引导数据库这样的东西,完成后将被丢弃。) – 2012-03-30 16:34:21

1

你想初始化变量为null或其他一些默认值。这样错误就会消失,而不是被压制。