新手问题:除非我弄错了,大多数属性似乎都是无害的,直到你在程序集或类上使用运行时反射来发现属性并对其进行操作。我注意到
ObsoleteAttribute
在.NET属性中似乎是独一无二的,因为它可以在编译期间动态地引发警告和错误: [Obsolete("don't use", false)]
public string Name { get; set; }
我想知道它是如何实现的?这是编译器内置的功能吗,因为相关的警告信息编号似乎特定于ObsoleteAttribute?我已经谷歌过了,但没有找到明显的答案。我知道在C++中,通过巧妙的宏技巧可以让C++按需发出警告和错误,但C#是如何实现的呢?谢谢...