Erg*_*wun 14 c# warnings monodevelop visual-studio
在VS2010,VS2008或Windows上的MonoDevelop中编译以下程序时,我收到警告CS0219,"已分配变量'y',但从未使用过它的值".
namespace Problem
{
public class Program
{
private static void Main(string[] args)
{
object x = new object();
int y = 0;
}
}
}
Run Code Online (Sandbox Code Playgroud)
为什么x在Visual Studio中编译时没有警告?
有趣的是,我得到了CS0219警告x ,并 y在Mac OS X中的MonoDevelop编译时
Erg*_*wun 22
事实证明,当赋值操作的右侧不是编译时常量时,将禁止此警告.
微软Visual Studio反馈网站上一篇自那时删除的文章解释说,这是因为他们有很多投诉来自纯粹分配变量的人,所以他们可以看到调试期间返回的方法调用,并发现警告令人恼火:
在这种情况下,对"已分配但从未使用过"的警告的抑制是出于执行此操作的用户的反馈:
Run Code Online (Sandbox Code Playgroud)int Blah(){ // blah BlahBlah(x, y, z) // blah // blah }"嘿,"用户在调试时说,"我不知道BlahBlah会回来什么?" 但是没有简单的方法来检查调试器中的返回值,因此用户经常这样做:
Run Code Online (Sandbox Code Playgroud)int Blah() { // blah int temp = BlahBlah(x, y, z) // blah // blah }然后使用locals或watch窗口来检查temp.temp永远不会在函数中的任何其他地方使用,因此会产生令人恼火的"已分配但未读取"警告.
我认为这有点遗憾:
无论如何,我明白你不能取悦所有人.
| 归档时间: |
|
| 查看次数: |
5508 次 |
| 最近记录: |