假设我有一个最小的C#类,如下所示:
class Thing
{
private float a, b, c, d;
(...)
}
有没有办法可以将属性应用于所有四个字段而无需将其写出四次?如果我将[SomeAttribute]
放在private
前面,则它似乎仅适用于a
。
答案 0 :(得分:4)
class Thing
{
[SomeAttribute]
public float a, b, c, d;
}
您提出的上述内容将会影响您的预期效果。你可以测试一下:
[AttributeUsage(AttributeTargets.Field)]
sealed class SomeAttribute: Attribute
{
public SomeAttribute()
{
}
}
class Program
{
static void Main(string[] args)
{
var t = typeof(Thing);
var attrs = from f in t.GetFields()
from a in f.GetCustomAttributes()
select new { Name = f.Name, Attribute = a.GetType() };
foreach (var a in attrs)
Console.WriteLine(a.Name + ": " + a.Attribute);
Console.ReadLine();
}
}
打印:
a: SomeAttribute b: SomeAttribute c: SomeAttribute d: SomeAttribute
答案 1 :(得分:3)
是的,有可能:
[SomeAttribute]
public int m_nVar1, m_nVar2;
(但显然只有类型相同时)
<强> REFERENCE 强>
示例:
[ContextStatic]
private float a, b, c, d;
答案 2 :(得分:0)
我认为你不能以任何方式使用视觉工作室。
我能想到的最烦人的方法是使用MultiEdit放置多个游标,只编写一次属性。