次の方法で共有


Visual Studio でコンストラクターを生成する

このコード生成は以下に適用されます。

  • C#

  • Visual Basic

機能: クラスの新しいコンストラクターのコードをすぐに生成できます。

条件: 新しいコンストラクターを導入し、自動的に適切に宣言したいとき。または既存のコンストラクターを変更するとき。

理由: コンストラクターは使用する前に自分で宣言できますが、この機能ではコンストラクターと適切なパラメーターが自動的に生成されます。 さらに、既存のコンストラクターを変更するには、この機能を使って自動的に更新しない限り、すべての呼び出しサイトを更新する必要があります。

方法: コンストラクターを生成するにはいくつかの方法があります。

コンストラクターを生成してメンバーを選択する (C# のみ)

  1. クラス内の任意の空の行にカーソルを置きます。

    Cursor in empty line

  2. 次に、以下のいずれかを実行します。

    • [キーボード]
      • Ctrl+. キーを押して、[クイック アクションとリファクタリング] メニューをトリガーします。
    • マウス
      • 右クリックして [クイック アクションとリファクタリング] メニューを選択します。
      • テキスト カーソルが既にクラスの空の行の上にある場合に、左余白に表示される アイコンをクリックします。

    Screenshot of the Generate constructor option.

  3. ドロップダウン メニューから [コンストラクターを生成する] を選択します。

    [メンバーの選択] ダイアログ ボックスが開きます。

  4. コンストラクターのパラメーターとして含めるメンバーを選択します。 上下の矢印を使って順序を変更できます。 OK を選択します。

    Pick members dialog

    ヒント

    [null チェックを追加する] チェックボックスをオンにすると、コンストラクターのパラメーターの null チェックを自動的に生成できます。

    指定したパラメーターを含むコンストラクターが作成されます。

    Screenshot showing that constructor is created with the specified parameters.

プロパティを指定してコンストラクターを生成する (C# のみ)

  1. インスタンスにカーソルを合わせます。

  2. Ctrl+. キーを押して、[クイック アクションとリファクタリング] メニューをトリガーします。

  3. [<QualifiedName> でコンストラクターを生成する (プロパティ付き)] を選択します。

    Screenshot of the Generate constructor in Key (with properties) option.

選択したフィールドからコンストラクターを生成する (C# のみ)

  1. 生成されるコンストラクターに含めるメンバーを強調表示します。

    Highlight members

  2. 次に、以下のいずれかを実行します。

    • [キーボード]

      • Ctrl+. キーを押して、[クイック アクションとリファクタリング] メニューをトリガーします。
    • マウス

      • 右クリックして [クイック アクションとリファクタリング] メニューを選択します。
      • テキスト カーソルが既に選択した行の上にある場合に、左余白に表示される アイコンをクリックします。

      Screenshot of the Generate constructor Person string string option.

  3. ドロップダウン メニューから [コンストラクター 'TypeName(...)' を生成します] を選択します。

    選択したパラメーターを含むコンストラクターが作成されます。

    Screenshot showing that the constructor is created with the selected parameters.

新しい使用法からコンストラクターを生成する (C# と Visual Basic)

  1. 赤い波線が表示されている行にカーソルを置きます。 赤い波線は、まだ存在していないコンストラクターの呼び出しを示します。

    • C#:

      Highlighted code C#

    • Visual Basic:

      Highlighted code VB

  2. 次に、以下のいずれかを実行します。

    • [キーボード]

      • Ctrl+. キーを押して、[クイック アクションとリファクタリング] メニューをトリガーします。
    • マウス

      • 右クリックして [クイック アクションとリファクタリング] メニューを選択します。
      • 赤い波線をポイントし、表示された アイコンをクリックします。
      • テキスト カーソルが既に赤い波線の行の上にある場合に、左余白に表示される アイコンをクリックします。

      Screenshot of the Generate constructor in Person option.

  3. ドロップダウン メニューから ['TypeName' にコンストラクターを生成します] を選択します。

    ヒント

    プレビュー ウィンドウの下部にある [変更のプレビュー] リンクを使うと、選択する前に、行われるすべての変更を確認することができます。

    コンストラクターと、その使用法から推論されるすべてのパラメーターが作成されます。

    • C#:

      Generate method result C#

    • Visual Basic:

      Generate method result VB

既存のコンストラクターにパラメーターを追加する (C# のみ)

  1. 既存のコンストラクターの呼び出しにパラメーターを追加します。

  2. まだ存在しないコンストラクターを使用したことを示す赤い波線がある行にカーソルを置きます。

    Screenshot showing the line where there is a red squiggle.

  3. 次に、以下のいずれかを実行します。

    • [キーボード]

      • Ctrl+. キーを押して、[クイック アクションとリファクタリング] メニューをトリガーします。
    • マウス

      • 右クリックして [クイック アクションとリファクタリング] メニューを選択します。
      • 赤い波線をポイントし、表示された アイコンをクリックします。
      • テキスト カーソルが既に赤い波線の行の上にある場合に、左余白に表示される アイコンをクリックします。

      Screenshot of the Add parameter to Person string string option.

  4. ドロップダウン メニューから [パラメーターを 'TypeName(...)' に追加する] を選択します。

    パラメーターと、その使用法から推測される型が、コンストラクターに追加されます。

    Screenshot showing that the parameter is added to the constructor, with its type inferred from its usage.

また、既存のメソッドにパラメーターを追加することもできます。 詳細については、メソッドにパラメーターを追加する方法に関するページを参照してください。

コンストラクター パラメーターからフィールドまたはプロパティを作成して初期化する (C# のみ)

  1. 既存のコンストラクターを探して、パラメーターを追加します。

    Screenshot showing an existing constructor.

  2. 新しく追加されたパラメーター内にカーソルを置きます。

  3. 次に、以下のいずれかを実行します。

    • [キーボード]
      • Ctrl+. キーを押して、[クイック アクションとリファクタリング] メニューをトリガーします。
    • マウス
      • 右クリックして [クイック アクションとリファクタリング] メニューを選択します。
      • パラメーターが追加された行の上に既にテキスト カーソルがある場合に、左余白に表示される アイコンをクリックします。

    Screenshot of the Create and initialize property Age option.

  4. ドロップダウン メニューから [プロパティ '{0}' を作成して初期化する] または [フィールド '{0}' を作成して初期化する] を選びます。

    フィールドまたはプロパティが宣言されて、自動的に型と一致する名前が付けられます。 また、フィールドまたはプロパティを初期化するコード行が、コンストラクターの本体に追加されます。

    Screenshot showing that the field or property is declared and automatically named to match your types.

関連項目