日期:2014-05-17  浏览次数:20777 次

【求解释】关于c#里field关键字的用法
在一篇讲序列化的文里看到的一个用法,是放在特性声明里,用来破坏特性修饰目标类型的限制,如下例

问题是:1,这种语法怎么理解
2.“field”被定义为关键字,除了这种用法还有别的原因吗?比如其他场景的使用



    [AttributeUsage(AttributeTargets.Field, Inherited = false)]
    public class abc : Attribute
    {
    }

    [field: abc] //编译通过
    class MyClass
    {
        [abc]
        public MyClass()
            //Error 1 Attribute 'abc' is not valid on this declaration type. It is only valid on 'field' declarations. C:\Users\gonglei.HOME\AppData\Local\Temporary Projects\ConsoleApplication1\Program.cs 27 10 ConsoleApplication1
        {
        }



------解决方案--------------------
这个我也正在学,那位大神讲讲
------解决方案--------------------
你从哪里看来的这种用法?我从未用过,也没看出它的用途,MSDN上也没有介绍,这是不是不推荐的写法?
------解决方案--------------------
在某本C#的教程里也看过,不过早已忘了是干嘛用的了