プロパティの生成
ReSharper は、公開したいすべてのフィールドのプロパティを生成できます。
以下の例では、このコマンドを使用して、_radius
および _center
フィールドのプロパティを生成します。
生成前 | 生成後 |
---|---|
class Circle
{
int _radius;
readonly Point _center;
public Circle(int radius, Point center)
{
_radius = radius;
_center = center;
}
}
|
class Circle
{
int _radius;
readonly Point _center;
public int Radius
{
get { return _radius; }
set { _radius = value; }
}
public Point Center
{
get { return _center; }
}
public Circle(int radius, Point center)
{
_radius = radius;
_center = center;
}
}
|
選択したフィールドを公開するプロパティを生成する
エディターで、タイプ名またはタイプ内の、選択したフィールドを公開するプロパティを挿入する行にキャレットを置きます。キャレットが型名上にある場合、生成されたコードは型宣言の先頭に追加されます。
Alt+Insert を押すか、メインメニューから
を選択します。あるいは、Control+Shift+A を押して、ポップアップでコマンド名を入力して、そこで選択することもできます。生成ポップアップで、プロパティ / 読み取り専用プロパティを選択します。
表示される生成ダイアログで、プロパティを生成するフィールドを選択します。
必要に応じて、生成されたすべてのプロパティに適用される次のコントロールを使用します。
- アクセス権
生成されたプロパティのアクセス権修飾子を定義します。
- 読み取り専用
プロパティを読み取り専用として生成するかどうかを定義します。自動を選択すると、ReSharper は読み取り専用フィールドには getter のみを生成し、その他のフィールドには getter と setter の両方を生成します。
生成ポップアップで読み取り専用のプロパティを選択した場合、セレクターははいに設定されますが、必要に応じて変更できます。
- Virtual
(該当する場合)生成されたプロパティに
virtual
修飾子を追加します。- プロパティの変更について通知する
(該当する場合) クラスが
INotifyPropertyChanged
を実装しているか、プロパティ変更通知をサポートするクラス (Prism のNotificationObject
など) から継承しており、プロパティ変更を通知するメソッドが [NotifyPropertyChangedInvocator] 属性で修飾されている場合、変更通知呼び出しを使用してプロパティを実装することを選択できます。詳細については、「INotifyPropertyChanged のサポート」を参照してください。
完了をクリックしてウィザードを完了します。
オプションをクリックして、ReSharper オプションの ページで一般的なコード生成設定を確認または変更することもできます。
このコマンドは、元のフィールドをそのままにしてプロパティを生成します。必要に応じて、任意のプロパティで Alt+Enter を押すことにより、生成されたプロパティを自動実装プロパティに変換できます。

この機能は、次の言語とテクノロジーでサポートされています。
ここで説明する手順と例では、C# の機能の使用について説明します。他の言語の詳細については、言語およびフレームワークセクションの対応するトピックを参照してください。
関連ページ:

フィールドのカプセル化リファクタリング
このリファクタリングでは、既存のフィールドのバッキングフィールドを持つ自動プロパティまたはプロパティを作成できます。フィールドの用途は自動的に更新されます。次の例では、フィールドが auto-property に置き換えられています。private string myString; public void DoSomething(string input) { myString = input; }public string MyString { get; private set; } publ...

コードアノテーション属性
フレームワークは、以下で説明する多くの属性を提供します。これらの属性をコードで使用するには、ソースコードのアノテーションセクションの説明に従ってを参照する必要があります。アノテーション属性:CanBeNullAttribute マークされた要素の値がになることがあることを示します。そのため、使用前にのチェックが必要です。サンプル [CanBeNull] object Test() => null; void UseTest() { var p = Test(); var s = p.ToSt...

INotifyPropertyChanged のサポート
インターフェースは、.NET アプリケーションで、プロパティの値が変更されたときに通知を送信するために広く使用されています。ReSharper には、このインターフェースを実装するための一連の機能が用意されています。ReSharper は、以下のフレームワークのプロパティ変更通知を実装できます。MVVM ライト (WPF、Silverlight、Windows Phone、ユニバーサルアプリ)、Caliburn.Micro (WPF、Silverlight、Windows Phone、ユニバーサ...

ASP.NET MVC 特有の機能
ReSharper には、一般的な ASP.NET 機能に加えて、ASP.NET MVC での作業をより簡単にサポートする特殊機能があります。構文のハイライト:ASP.NET MVC メソッド呼び出しとパラメーターの特別な構文のハイライト: コード補完:文字列リテラルでアクションとコントローラーを参照するための専用コード補完: ナビゲーションと検索:さまざまなナビゲーション機能がアクションとコントローラーでも機能します。コード生成:使用箇所から新しいコントローラーとアクションを作成する: 最終...

言語による ReSharper: MSBuild
MSBuild は、アプリケーションを構築するために広く使用されているプラットフォームです。特定の XML タグを使用して、プロジェクトの構築方法や実行方法を定義できます。ReSharper を使用すると、より速く行うことができます。コード検査:あらかじめ定義された要素またはその属性の名前を誤って入力した場合、ReSharper はそのような不一致についてハイライト表示します。まだ定義されていないプロパティを参照しようとすると、ReSharper はそのようなケースも検出します。MSBuild...

言語による ReSharper: Google プロトコルバッファ (Protobuf)
ReSharper オプションのページで Protobuf サポートが明示的に有効になっている場合、ReSharper は Google Protocol Buffers (Protobuf) バージョン 2.x および 3.0 の .proto ファイルでコード分析および支援機能を提供します。ReSharper は、.proto ファイルの言語構文をハイライトし、エラーを検出してハイライトします。基本コード補完と他のタイピング支援機能はエディターで利用可能です。型と値の宣言に行き、それらの使用箇所を...