假设我有一个最小的 C# 类,如下所示:
class Thing
{
private float a, b, c, d;
(...)
}
有没有一种方法可以将属性应用于所有四个字段而不必写出四次?如果我把它放在[SomeAttribute]
前面private
,它似乎a
只适用于。
假设我有一个最小的 C# 类,如下所示:
class Thing
{
private float a, b, c, d;
(...)
}
有没有一种方法可以将属性应用于所有四个字段而不必写出四次?如果我把它放在[SomeAttribute]
前面private
,它似乎a
只适用于。
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: 一些属性 b: 一些属性 c: 一些属性 d: 一些属性
是的,有可能:
[SomeAttribute]
public int m_nVar1, m_nVar2;
(但显然只有在类型相同的情况下)
例子:
[ContextStatic]
private float a, b, c, d;
我认为您无法使用 Visual Studio 以任何方式实现这一目标。
我能想到的最不烦人的方法是使用MultiEdit,您可以在其中放置多个光标,并且只编写一次属性。