不知何故,当我在VS 2008中编译它时,它不会引发错误,有没有办法标记它,所以它确实引发错误?
namespace ConsoleApplication1
{
public class Program
{
static void Main(string[] args)
{
Program[] programs = null;
var result = programs.Where(p => p.Value.Length == 0);
}
[Obsolete("Do not use", true)]
public string Value { get; set; }
}
}
此代码无论如何都不会运行但是它应该在编译时引发错误,如果你只是p.Value
它会将它标记为过时但在添加.Length
或任何时候以某种方式忽略它其他财产/方法
答案 0 :(得分:2)
您使用的是哪个版本的Visual Studio?我刚刚尝试使用C#4编译器编译代码,并得到了这个:
Test.cs(12,42): error CS0619: 'Program.Value' is obsolete: 'Do not use'
我想知道这是否是C#3编译器(随VS2008 / .NET 3.5一起提供)中的一个错误,该错误是为C#4编译器修复的。