【问题标题】:Can you apply a attribute to multiple fields in C#?您可以将属性应用于 C# 中的多个字段吗?
【发布时间】:2012-05-23 18:45:04
【问题描述】:

这似乎不可能,但我还是会问...在 C# 中是否可以一次将单个属性应用于多个字段?

public class MyClass {
     [SomeAttribute]
     public int m_nVar1;
     [SomeAttribute]
     public int m_nVar2;
     public int m_nVar3;
}

有没有一种简单的方法可以将“SomeAttribute”放在 m_Var1 和 m_Var2 上,而不是放在 m_nVar3 上?目前,我们将属性放在每个字段之前,但最好将所有使用属性的字段放在块内。

【问题讨论】:

    标签: c# custom-attributes


    【解决方案1】:

    是的,有可能:

    [SomeAttribute]
    public int m_nVar1, m_nVar2;
    

    (但显然只有在类型相同的情况下)

    【讨论】:

    • 是的,谢谢.. 但在我们的用例中类型肯定不会相同。
    • @Faustus 在类型不同的地方,没有办法做到这一点。
    • 好的,谢谢...这就是我的想法,因为我一开始在 MSDN 中找不到它。
    【解决方案2】:

    这可行吗?但最终可能会很乏味

    public class CustomClass
    {
     [CustomAttribute]
     public dynamic value { get; set; }
    }
    
    public class MyClass
    {
        public CustomClass m_nVar1, var2, var3;
        public MyClass()
        {
            m_nVar1.value = (int)m_nVar1.value;
            var2.value = (string)var2.value;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-08-28
      • 2019-07-23
      • 1970-01-01
      • 2018-07-02
      • 2015-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多