C#自定义属性命名

前端之家收集整理的这篇文章主要介绍了C#自定义属性命名前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个自定义属性类,我定义为:
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
public sealed class MyCustomAttribute : System.Attribute
{
    ...
}

从微软网站:

By convention,the name of the
attribute class ends with the word
Attribute. While not required,this
convention is recommended for
readability. When the attribute is
applied,the inclusion of the word
Attribute is optional.

所以,属性可以由任一个使用

[MyCustom()]

要么

[MyCustomAttribute()]

我的问题给大家,如果有人使用名称的缩写版本和全名遇到任何问题吗?我正在运行4.0框架.

谢谢!

解决方法

没问题.

在编译的IL中,名称总是附加属性(完整的类型名称).

基于ECMA-334(C#spec)24.2,首先通过精确匹配来完成分辨率,然后通过在[]中给出的名称附加“Attribute”.另外,如果存在冲突(例如:MyAttribute和MyAttributeAttribute),则会在使用“MyAttribute”时生成编译时错误.

猜你在找的C#相关文章