文章地址:http://developer.51cto.com/art/200908/141545.htm
引用里面的一句话如下:
2.这里有一个约定:所有自定义的特性名称都应该有个Attribute后缀。因为当你的Attribute施加到一个程序的元素上的时候,
编译器先查找你的Attribute的定义,如果没有找到,那么它就会查找“Attribute名称"+Attribute的定义。如果都没有找到,那么编译器就报错。这就是为什么我可以再上面第一段代码中,定义一个VersionAttribute,但在第二段代码中,我使用却是Version这个Attribute。:>
编译器先查找你的Attribute的定义,这句话的意思是指编译器先按Version这个名称去找下面这段代码吗?
[AttributeUsage(AttributeTargets.Class)]
public class VersionAttribute : Attribute
{
public string Name { get; set; }
public string Date { get; set; }
public string Describtion { get; set; }
}
如果没有找到,那么它就会查找“Attribute名称"+Attribute的定义.
我的理解:编译器先按Version去找肯定是找不到的因为这个类名为:VersionAttribute,然后它再根据Attribute名称"+Attribute去查找的?
我感觉我理解有问题,不知道编译器是怎么查找的过程.