1

私は自分自身がこの種のものをたくさん書いていることに気づきます:

[SameAttribute]
ClassA fieldA;

[SameAttribute]
ClassB fieldB;

[SameAttribute]
ClassC fieldC;

...

一度に同じ属性を持つ複数のフィールドをマークできるC#の構文はありますか?この状況について、このコードの冗長性を減らし、読みやすくするコーディング規約があるのではないでしょうか。

編集:明確にするために、クラスのすべてのフィールドにこの属性を持たせたくはありません。それらはたくさんあります。

4

4 に答える 4

1

いいえ[SameAttribute]を各フィールドに個別に適用する必要があります。

于 2013-03-26T17:01:29.227 に答える
1

クラス内のすべてのフィールドに適用する場合SomeAttributeは、クラス全体に属性を適用できる可能性があります。ただし、SomeAttributeクラスをターゲットにすることが許可されている場合でも、そうするときの正確な動作は、の実装に依存しSomeAttributeます。それ以外の場合は、属性を各フィールドに個別に適用する必要があります。

于 2013-03-26T17:02:01.903 に答える
1

上記の他の回答に加えて、「アスペクト指向プログラミング」を可能にするPostSharpを使用すると、クラスの各メンバーに適用される属性を定義できます。これを使用して、すべてのメンバーに目的の属性を適用するカスタム属性を作成できます。

于 2013-03-26T17:19:44.483 に答える
0

私が知っている、箱から出してすぐに使えるものは何もありませんが、ReSharperのようなVisual Studioアドインを使用して、特定のテンプレートを使用するときに使用する属性を自動的に追加するライブテンプレートを作成できます。

http://www.jetbrains.com/resharper/features/code_templates.html

于 2013-03-26T17:14:11.797 に答える