When compiling the following program in VS2010, VS2008 or MonoDevelop on Windows, I get warning CS0219, “The variable ‘y’ is assigned but its value is never used”.
namespace Problem
{
public class Program
{
private static void Main(string[] args)
{
object x = new object();
int y = 0;
}
}
}
Why is there no warning for x when compiling in Visual Studio?
Interestingly, I do get CS0219 warnings for x and y when compiling in MonoDevelop on Mac OS X.
It turns out that this warning is suppressed when the right-hand-side of the assignment operation is not a compile-time constant.
A since-deleted post on Microsoft’s Visual Studio feedback site explained that it’s because they had lots of complaints from people who were assigning variables purely so they could see what a method call returned during debugging, and found the warning irritating:
I think this is a bit of a shame since:
Anyway, I understand that you can’t please everyone.