C#コードをダブルクリックで実行する方法 (Tim Coreyが説明)
C#コードの実行は通常、Visual Studioを開いて新しいプロジェクトを作成し、ソリューション内部で作業し、IDEまたはコマンドラインを使ってコンソールアプリケーションを実行することを意味します。しかし最近のビデオでは、ティム・コーリーは、シングル.csファイルを直接実行することで、C#をより軽量に使用する方法を示しています。
このビデオでは、ティムがそのアイデアをさらに一歩進めています。 彼はC#コードをダブルクリックだけで実行する方法をWindowsで、エディターを開いたり手動でコマンドを入力したりせずに説明します。 この記事では、ティム・コーリーの説明を詳細に説明し、ビデオをステップバイステップで追いかけて、この方法がどのように機能し、なぜ機能するのかを明確に理解できるようにしています。
コマンドライン実行からダブルクリック実行へ
0:00で、ティム・コーリーは以前のデモを引用し、dotnet CLIを使ってC#ファイルを直接実行する方法を示しました。 そのアプローチでは、.csファイルをターミナルウィンドウから実行することができ、C#がプロジェクトファイルではなくスクリプトファイルに近くなるように感じさせます。
しかし0:11で、ティムはまだ制限が残っていることを指摘しています。それは、C#ファイルをダブルクリックして実行できないということです。 コマンドラインを使用する必要がありました。つまり、コンソールを開いてフォルダまで移動し、コマンドを入力する必要がありました。
0:20で、ティムはこのビデオの目標が、それを解決し、.csファイルをダブルクリックしてWindowsで直接実行する方法を示すことであると説明しています。
A Simple Hello World Example in C
0:42で、ティムは2つのファイルを紹介します。1つはhello.csというC#ファイルで、もう1つはすべてを機能させるバッチファイルです。
まずティムはC#ファイル自体に集中します。 0:53で、彼はdotnet run hello.csを使ってそれを実行し、出力は単純なHello Worldメッセージです。 1:01でティムは説明しているように、これがこのプログラム全体の動作です。
ティムはVisual Studioを開いたり、完全なプロジェクトファイルを作成したりはしませんが、C#コードは開発者が認識する同じコア構造を維持しています。Systemを使用し、public class Programを定義し、static void Mainメソッドを含んでいます。 これにより、伝統的なコンソールアプリプロジェクトがなくても、C#コンパイラは依然として有効なC#コードをコンパイルして実行できることが示されます。
1:05でティムは、このアプローチが单一の.csファイルをほとんどスクリプトのように扱い、完全な.NET FrameworkまたはSDKスタイルのプロジェクト設定の必要を避けると説明しています。
これが完全なプロジェクト設定ではない理由
1:08で、ティムは視聴者にこれはソリューションやプロジェクト参照、NuGetパッケージを持つフルのコンソールアプリケーションを作成するのとは同じではないことを簡単に思い出させます。 これらの概念は依然として、より大きなアプリを構築する際には重要です。
しかし、クイックユーティリティ、学習例、または軽量な自動化のために、ティムは、単一の.csファイルとdotnet CLIで直ぐにコーディングを開始し、フォルダ、拡張子、またはプロジェクト設定を気にせずに済む方法を示しています。
バッチファイルソリューションの紹介
1:19で、ティムはダブルクリック実行がWindowsツールであるバッチファイルの助けを必要とすることを説明します。
1:24で彼は、バッチファイルがダブルクリックのアクションをdotnet runコマンドに接続するものであると明確に述べます。 これがなければ、Windowsは.csファイルをプログラムとしてどのように実行するかを知りません。
ティムは、バッチファイルがビデオの説明にあると述べていますが、それを行・行で見ていくので開発者が正確に何が起こっているかを理解できます。
バッチファイルの動作
1:34で、ティムはバッチファイル全体を示し、それぞれの行を説明し始めます。
まず彼はコマンドのエコーを無効にして出力をクリーンに保ちます。 1:39で、彼はバッチファイルがカレントディレクトリをクリックされた.csファイルがあるフォルダに変更することを説明します。 これにより、実行中に正しいファイルがアクセスされることが保証されます。
1:46で、ティムは最も重要な行を強調します。それはdotnet runコマンドです。 ダブルクリックされたファイルは引数として渡され、バッチファイルが自動的に正しい.csファイルを実行することを可能にします。
このアプローチでは、別のexeファイルを手動でコンパイルするのを避け、.NETコンパイラに依存してコードをコンパイルし、必要に応じて実行します。
ターミナルウィンドウを開いたままにする
1:52で、ティムはバッチファイルにpauseコマンドが含まれる理由を説明します。
サンプルプログラムには、Console.ReadLine()のようなユーザー入力を待つ待機時間がないため、ターミナルウィンドウは実行後すぐに閉じてしまいます。 これはユーザーが出力を全く見えない状態の一瞬の点滅となります。
ティムはターミナルを一時停止させることにより、ユーザーがキーを押すまで出力を可視のままにします。 2:15で説明しているように、その行動を望まない場合は、タイムはpauseラインを削除してプログラムをバックグラウンドで静かに実行することができると言います。
.csファイルをバッチファイルに関連付ける
2:24で、ティムはバッチファイル自体がダブルクリックされることを意図していないと説明します。 それは入力としてファイル名を期待しています。
2:32での解決策として、ティムはオープンウィズ→別のアプリの選択を使用して.csファイルをバッチファイルに関連付ける方法を紹介します。もしバッチファイルがリストに表示されない場合、ティムは2:42で手動でシステムを参照して見つけることができると説明します。
一度選択されると、ティムは常にを選択して、このバッチファイルをWindows上の.csファイルのデフォルトハンドラとします。
Running C# Code With a Double Click
3:06で、ティムは結果をデモします。 彼がhello.csをダブルクリックすると、コンソールウィンドウが開き、C#コードがコンパイルされ実行され、Hello World出力が表示されます。
これにより、Pythonのような言語でのスクリプトを実行するのに似た経験が生まれ、ユーザーが1つのファイルを直接実行できるようになります。
Visual Studioまたはエディターへの切り替え
3:16で、ティムはファイルをVisual Studio、VS Code、または別のエディターで開きたい場合に何が起こるかを説明します。
彼は、ダブルクリックには1つのデフォルトアクションしか割り当てられないと説明します。 しかし、ユーザーは右クリックしてオープンウィズを選んでファイルをエディターで開くことができます。 3:37で、ティムはエディターを選択し、再び常にを選択してデフォルトの動作をエディターに戻す方法を示します。
Windows専用、シンプル、そして実用的
3:54で、ティムはこの方法がWindowsでのみ動作することを明確にしていますが、他のプラットフォームでも似たアイデアが存在するかもしれないと言います。
4:00で彼は、.csファイルが正しく設定されている限り、開発者は今やそれをダブルクリックしてC#コードを実行し、出力を確認し、キーを押してウィンドウを閉じるか、または一時停止せずに静かに実行させることができると結論付けます。
最終的な考え
このビデオにより、ティム・コーリーは、完全なプロジェクト、IDE、または手動のコマンドラインステップなしでC#コードを実行する実用的な方法を示しています。 シンプルなC#ファイルとバッチファイルを組み合わせることで、C#はクイックスクリプト、試行、ユーティリティに対してはるかにアクセスしやすくなり、public class Program、static void Main、dotnet CLIのような親しみのある概念を使用し続けることができます。
ティムが強調しているように、これはベストプラクティスを置き換えるためのものではなく、適切な道具が仕事のためにあるということです。

