C# 開発者のための Visual Studio 生産性ガイド
C# を使う .NET 開発者の生産性が Visual Studio によってどのように向上するかを説明します。 逆コンパイルされたアセンブリへの移動、入力時の変数名の提案、テスト エクスプローラーの階層ビュー、ファイル/型/メンバー/シンボルの宣言に移動するための [すべてに移動] (Ctrl+T)、インテリジェントな例外ヘルパー、コード スタイルの構成と適用、多くのリファクタリングとコード修正など、パフォーマンスと生産性を向上させる機能を利用できます。
.NET、C++、その他の言語の一般的な生産性については、「Visual Studio の生産性に関するガイド」をご覧ください。 便利なキーボード ショートカットについては、「生産性のショートカット」をご覧ください。 コマンド ショートカットの完全なリストについては、「既定のキーボード ショートカット」をご覧ください。
異なるエディターのキーボード ショートカットを使用する
別の IDE やコーディング環境から切り替えた場合は、キーボード スキームを Visual Studio Code または ReSharper (Visual Studio) に変更できます。
次の一部の拡張機能でも、キーボード スキームが提供されます。
よく使用される Visual Studio のショートカットを以下に示します。
ショートカット (すべてのプロファイル) | コマンド | 説明 |
---|---|---|
Ctrl+T | すべてにジャンプ | 任意のファイル、型、メンバー、またはシンボルの宣言に移動します |
F12 (Ctrl+クリックでも可能) | [定義へ移動] | シンボルが定義されている場所に移動します |
Ctrl+F12 | 実装に移動 | 基本データ型またはメンバーから、さまざまな実装に移動します |
Shift+F12 | [すべての参照の検索] | すべてのシンボルまたはリテラルの参照を表示します |
Alt+ホーム | ベースに移動 | 継承チェーンの上に移動します |
Ctrl+. キー (C# プロファイルでは Alt+Enter キーでもかまいません) | クイック アクションとリファクタリング | そのカーソル位置またはコード選択で、どのコード修正、コード生成アクション、リファクタリング、その他クイック アクションが使用できるかを表示します |
Ctrl+D | 行の複製 | カーソルのあるコード行を複製します |
Shift+Alt++/- | 選択範囲の拡大/縮小 | エディターの現在の選択範囲を拡大または縮小します |
Shift + Alt + . | 次の一致にキャレットを挿入 | 現在の選択範囲と一致する次の場所で選択内容とキャレットを追加します |
Ctrl+Q | 検索 | すべての Visual Studio の設定を検索します |
F5 | デバッグの開始 | アプリケーションのデバッグを開始します |
Ctrl+F5 | デバッグなしで開始 | デバッグなしでアプリケーションをローカルで実行します |
Ctrl+K、D (既定のプロファイル) または Ctrl+E、D (C# Profile) | ドキュメントのフォーマット | 改行文字、間隔、およびインデント設定に基づき、ファイルの書式設定の違反をクリーンアップします |
Ctrl+\ 、Ctrl+E (既定のプロファイル) または Ctrl+W、E (C# Profile) | エラー一覧の表示 | ドキュメント、プロジェクト、またはソリューション内のすべてのエラーを表示します |
Alt + PgUp/PgDn | 次/前の問題に移動 | ドキュメント内の前または次のエラー、警告、提案に移動します |
Ctrl+K、 / | 単一行コメント/コメント解除を切り替える | このコマンドでは、選択範囲が既にコメント化されているかに応じて、単一行のコメントを追加または削除します |
Ctrl+Shift+/ | ブロック コメント/コメント解除を切り替える | このコマンドでは、選択内容に応じて、ブロック コメントが追加または削除されます |
注意
一部の拡張機能によって、既定の Visual Studio キー バインドがバインド解除されます。 [ツール]>[設定のインポートとエクスポート]>[すべての設定をリセット] または [ツール]>[オプション]>[キーボード]>[リセット] に移動することで、既定のキー バインドに戻すことができます。
キーボード ショートカットとコマンドについて詳しくは、生産性のショートカットに関する記事をご覧ください。 または、すべてが網羅された一覧とダウンロードできるチート シートについては、「Visual Studio のキーボード ショートカット」をご覧ください。
ファイルまたは型にすばやく移動する
Visual Studio の [すべてに移動] という機能を使うと、任意のファイル、型、メンバー、またはシンボルの宣言にすばやくジャンプできます。 メニュー バーからそれを開くには、[編集]>[移動]>[すべてに移動] を選びます。 または、Ctrl+T キーボード ショートカットを使って開くこともできます。
コード エディターの右上に小さいウィンドウが表示されます。
この機能を使うと、次のアクションを実行できます。
- 歯車アイコンを使って、検索バーの場所を変えたり、ライブ ナビゲーション プレビューをオフにしたりします。
t mytype
などの構文を使って、結果をフィルター処理します。- 検索の範囲を現在のドキュメントだけにします。
- キャメル ケースの一致がサポートされています。
[すべてに移動] について詳しくは、「移動コマンドを使用したコードの検索」をご覧ください。
コード スタイル規則を適用する
EditorConfig ファイルを使って、コーディング規則を体系化し、ソースとともに移動させることができます。
- ソリューション エクスプローラーの [追加] コンテキスト メニュー ポップアップから [追加]>[新しい項目] を選んで、プロジェクトに既定または .NET スタイルの EditorConfig ファイルを追加します。 その後、[新しい項目の追加] ダイアログ ボックスで、"editorconfig" を検索します。 いずれかの editorconfig ファイル項目テンプレートを選択し、[追加] を選択します。
- [ツール]>[オプション]>[テキスト エディター]>[C#]>[コード スタイル] のコード スタイルの設定に基づいて、.editorconfig ファイルを自動的に作成します。
Visual Studio 用 IntelliCode のコード推論機能では、既存のコードからコードのスタイルが推論されます。 その後、既に定義されているコード スタイルの設定で、空ではない EditorConfig ファイルが作成されます。
エディターを使用して、コード スタイル ルールの重大度レベルを直接構成します。 .editorconfig ファイルがない場合、Visual Studio によって自動的に生成されます。 エラー、警告、または修正候補にカーソルを置き、Ctrl+. キーを押して、[クイック アクションとリファクタリング] メニューを開きます。 [Configure or Suppress issues](問題の構成または抑制) を選択します。 その後、ルールを選択し、そのルールに対して構成する重要度レベルを選びます。 このアクションにより、既存の EditorConfig がルールの新しい重要度で更新されます。
.NET のコード スタイル ルールのオプションを確認してください。完全な EditorConfig ファイルの例も含まれます。
コードのクリーンアップ
Visual Studio では、コードのクリーンアップ機能により、コード スタイルの個人設定など、コード ファイルのオンデマンドの書式設定が提供されます。 コードのクリーンアップを実行するには、エディターの下部にあるほうきアイコンを選択するか、Ctrl+K、Ctrl+E の順にキーを押します。
プロジェクト全体またはソリューション全体に対して、コードのクリーンアップを実行することもできます。 ソリューション エクスプローラーでプロジェクトまたはソリューションの名前を右クリックし、[分析とコードのクリーンアップ] を選択して、[コードのクリーンアップの実行] を選択します。
ファイルの空白やインデントなどの書式設定だけでなく、コードのクリーンアップでは選択したコード スタイルも適用されます。 各コード スタイルの設定は、EditorConfig ファイルから (プロジェクトにファイルがある場合)、または [オプション] ダイアログ ボックスのコード スタイルの設定から、読み取られます。
リファクタリングとコード修正
Visual Studio には、多くのリファクタリング、コード生成アクション、およびコード修正が含まれています。 赤の波線はエラー、緑の波線は警告、3 つのグレーの点はコード提案をそれぞれ表します。 コード修正にアクセスするには、電球またはねじ回しのアイコンを選択するか、Ctrl+. キーまたは Alt+Enter キーを押します。 各修正にはプレビュー ウィンドウが付属しており、修正の効果によるライブ コードの相違が示されます。
一般的なクイック修正とリファクタリングには、次の内容が含まれます。
- [名前の変更]
- メソッドの抽出
- メソッド シグネチャの変更
- コンストラクターの生成
- メソッドの生成
- ファイルへの型の移動
- Null チェックの追加
- パラメーターの追加
- 不要な using の削除
- LINQ クエリまたは LINQ メソッドへの foreach ループ
- メンバーのプル アップ
詳しくは、コード生成機能に関する記事をご覧ください。
.NET アナライザーをインストールして、コードの問題にフラグを設定できます。 または、Roslyn アナライザーを使用して、独自のリファクタリングまたはコード修正を記述します。
さまざまなコミュニティのメンバーが、さらにコードの検査を追加する無料の拡張機能を作成しています。
使用状況の検索、実装への移動、および逆コンパイルされたアセンブリへの移動
Visual Studio には、コードの検索と移動に役立つ多くの機能があります。
機能 | ショートカット | 詳細/機能強化 |
---|---|---|
[すべての参照の検索] | Shift+F12 | 結果は、プロジェクト、定義、および参照型によって、色分け表示してグループ化できます (読み取りや書き込みなど)。 結果を "ロックする" こともできます。 |
実装に移動 | Ctrl+F12 | オーバーライドされたメンバーに移動するには、override キーワードの [定義へ移動] を使用します |
[定義へ移動] | F12 または Ctrl+クリック | Ctrl キーを押しながらクリックすると、定義に移動します |
定義をここに表示 | Alt+F12 | 定義のインライン ビュー |
構造ビジュアライザー | 中かっこの間の灰色の点線 | マウス ポインターを合わせると、コードの構造を参照できます |
逆コンパイルされたアセンブリへの移動 | F12 または Ctrl+クリック | [ツール]>[オプション]>[テキスト エディター]>[C#]>[詳細設定]>[Enable navigation to decompiled sources](逆コンパイルされたソースへの移動を有効にする) で機能を有効にして、外部ソース (ILSpy によって逆コンパイル済み) に移動します。 |
強化された IntelliSense
単なるアルファベット順の一覧ではなく、文脈に合わせたコードの入力候補を取得するには、Visual Studio 用の IntelliCode を使います。
単体テスト
テストのエクスペリエンスには多くの機能強化が行われています。 MSTest (MSTest v1 または MSTest v2)、NUnit、および XUnit テスト フレームワークでテストできます。
テスト エクスプローラーでのテスト検出は高速で実行されます。
テスト エクスプローラーで階層的な並べ替えを使用して、テストを整理します。
- Live Unit Testing は、コードの変更によって影響を受けたテストを継続的に実行して、テストの状態を通知するインライン エディターのアイコンを更新します。 ライブ テスト セットに特定のテストまたはテスト プロジェクトを含めるか除外します。 (Visual Studio Enterprise エディションのみ。)
詳しくは、「単体テストの基本」をご覧ください。
デバッグ
Visual Studio には次のデバッグ機能が含まれています。
- Watch、Autos、および Locals の各ウィンドウでの文字列検索機能。
- クリックで実行。コード行の横にマウス ポインターを移動すると緑色の [再生] アイコンが表示され、それをクリックすると、その行に達するまでプログラムを実行できます。
- 例外ヘルパー。最も重要な情報をダイアログの最上位に配置します (たとえば、
NullReferenceException
でどの変数がnull
なのか)。 - デバッグのステップ バック。前のブレークポイントまたはステップに戻り、過去のアプリケーションの状態を確認できます。
- スナップショットのデバッグ。例外がスローされた時点のライブ Web アプリケーションの状態を調べることができます (Azure 上でスローされる必要があります)。
バージョン コントロール
Visual Studio 2022 では、IDE から Git を直接使って、pull request の作成、確認、チェックアウト、実行を行うことができます。 詳しくは、「Visual Studio で Git を使用してバージョン コントロールを簡単にする方法」をご覧ください。
Git または TFVC を使って、Visual Studio にコードを格納して更新することができます。
Visual Studio 2019 バージョン 16.8 以降では、IDE 内から Git を直接使って、pull request の作成、確認、チェックアウト、実行を行うことができます。
Visual Studio 2019 バージョン 16.7 以前で Visual Studio を離れずに pull request を作成、確認、チェックアウト、実行するには、Pull requests for Visual Studio 拡張機能をインストールします。
チーム エクスプローラーでローカルの変更を整理し、ステータス バーを使用して保留中のコミットと変更を追跡します。
Continuous Delivery Tools for Visual Studio 拡張機能を使用して、Visual Studio 内で ASP.NET プロジェクトの継続的インテグレーションと継続的デリバリーを設定します。
他にどのような機能について知っておく必要がありますか?
コードをいっそう効率的に記述できるようになるエディターと生産性の機能の一覧を次に示します。 一部の機能は既定ではオフになっているため、有効にすることが必要な場合があります。
機能 | 詳細 | 有効にする方法 |
---|---|---|
ソリューション エクスプローラーでファイルを探す | ソリューション エクスプローラーで作業中のファイルを強調表示する | [ツール]>[オプション]>[プロジェクトとソリューション]>[アクティブな項目をソリューション エクスプローラーで選択された状態にする] |
参照アセンブリと NuGet パッケージの型に using を追加する | 参照されていない型の NuGet パッケージをインストールするためのコード修正を含むエラー電球を表示します | [ツール]>[オプション]>[テキスト エディター]>[C#]>[詳細設定]>[参照アセンブリの型に using を提案する] および [NuGet パッケージの型に using を提案する] |
完全ソリューション解析を有効にする | エラー一覧にソリューション内のすべてのエラーを表示します | [ツール]>[オプション]>[テキスト エディター]>[C#]>[詳細設定]>[完全ソリューション解析を有効にする] |
逆コンパイルされたソースへの移動を有効にする | 外部ソースからの型/メンバーの [定義に移動] が可能になり、ILSpy 逆コンパイラを使ってメソッド本体を表示できます | [ツール]>[オプション]>[テキスト エディター]>[C#]>[詳細設定]>[逆コンパイルされたソースへのナビゲーションを有効にする] |
補完/提案モード | IntelliSense の補完動作を変更します。 IntelliJ の知識がある開発者が、既定ではない動作を使用するのに役立ちます。 | [編集]>[Intellisense]>[完了モードの切り替え] (またはエディターで Ctrl+Alt+Space キーを押します) |
CodeLens | コードの参照情報と変更履歴をエディターに表示します (ソース管理の CodeLens インジケーターは、Visual Studio Community エディションでは使用できません。) | [ツール]>[オプション]>[テキスト エディター]>[すべての言語]>[CodeLens] |
コード スニペット | 一般的な定型コードをスタブできるようにします | スニペットの名前を入力し、Tab キーを 2 回押します。 |
JSON または XML をクラスとして貼り付ける | 任意の JSON または XML テキスト フラグメントをクリップボードにコピーし、厳密に型指定された .NET クラスとして任意の C# コード ファイルに貼り付けます。 | [編集]>[形式を選択して貼り付け]>[JSON をクラスとして貼り付ける] (または [XML をクラスとして貼り付ける]) |
コピーとトリミングのインデント | Visual Studio から別のプログラム (Outlook や Teams など) にコードをコピーしますが、コードを張り付けた後に手動でインデントを修正する必要がありません。 Visual Studio 2022 バージョン 17.7 以降で利用できます。 |