不知怎的,当我在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或任何其他属性/方法时会以某种方式忽略它
最佳答案 您使用的是哪个版本的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编译器修复的.