2

右ボタン>リファクタリング>カプセル化フィールドを使用して、毎回アクセサーを取得します。問題は、新しいクラスを作成するときに、10 個を超える属性を持つことができ、アクセサーごとに 1 つずつ実行するのに時間がかかることです。それらを作成するより速い方法はありますか?

お時間をいただきありがとうございます。

4

3 に答える 3

2

新しいクラスを作成する場合、最初にフィールドを作成してからカプセル化する代わりに、コード スニペットを使用してカプセル化されたフィールドを作成できます。C# では、ショートカットは prop と propg (プライベート セット用) です。

于 2008-09-24T13:21:38.583 に答える
1

C# 3.0 では、新しいプロパティ構文により、フィールドを宣言してアクセサーを実装する必要がなくなりました。構文は次のようになります。

public string Name { get; private set; }

また、内部メンバーの場合、呼び出し元と実装の両方を制御できるため、単純なプロパティは内部フィールドに対してほとんど価値がないことを指摘したいと思います。将来、多くの作業をしなくてもプロパティに切り替えることができます。

パブリック メンバーであっても、プロパティにパブリック データ フィールドを作成するだけでコードの将来性を保証できると考えるのは近視眼的です。少なくとも、コンストラクター (ファクトリを使用) とインターフェイス (インターフェイスを使用) の周りに間接参照を追加する必要があります。また、API の利用者が複数のバージョンで作業することをどのように期待するかについても深く考える必要があります。これは非常に難しいことであり、API ベンダーである場合にのみ行う価値があると思います。

私のコードでプロパティを使用する主な理由は、リフレクションを使用する多くのツールがフィールドではなくプロパティを参照するためです。これは間違いだと思いますが、それがツールの仕組みです。

于 2008-09-27T03:42:33.120 に答える
1

スタジオに組み込まれているリファクタリングは、カプセル化フィールドのリファクタリングで一度に 1 つのフィールドしかサポートしていないようです。リファクタリングのプロ!( http://www.devexpress.com/Products/Visual_Studio_Add-in/Refactoring/ ) または Resharper ( http://www.jetbrains.com/resharper/index.html ) は両方とも、複数のフィールドのカプセル化をサポートしています。

複数のフィールドを選択し、それぞれをカプセル化できるマクロを作成することもできますが、VS マクロは私の好みではありません。

于 2008-09-24T12:50:29.797 に答える