Try .NET を使用して初めてのアプリを構築する
このモジュールの冒頭で、読者は C# を使用して "Hello World" アプリケーションを作成したことがあるものと想定しました。 まだの場合は、このラーニング パスの最初のモジュールである「最初の C# コードを記述する」を見直すことをお勧めします。
わかりやすくするため、"Hello World" アプリケーションを書き直しますが、今回は、.NET の観点から考え、バックグラウンドで行われていることについて説明します。
C# を使用して簡単なアプリを作成する
前に学習したように、Try .NET を使用すると、C# と .NET を簡単に試してみることができます。 Try .NET は、ローカル コンピューターにソフトウェアをインストールしなくても使用できます。
Note
このモジュールでは、ブラウザー組み込みバージョンの Try .NET を使用します。 この演習を終えた後でアプリケーションを試してみたい場合は、https://try.dot.net
を参照してください。 Try .NET を使用すると、ローカル コンピューターに何もインストールすることなく、小さなコードの例を試すことができます。
ステップ 1 - コードを記述する
この Web ページの右側の .NET エディターで、次のコード サンプルを入力します。 または、コード サンプルをコピーし、.NET エディターに貼り付けます。
Console.WriteLine("Hello world!");
前提条件のモジュールで学習したように、"Hello World" は、開発者が新しいプログラミング言語の基本的な構文を理解するために記述する単純で標準的なコードの例です。 この簡単な例から、C# の構文に関して多くのことを学習できます。 ここでは、特に .NET について詳しく学習するためにそれを使用します。
ステップ 2 - コードを実行する
.NET エディターで緑色の [実行] ボタンを選択します。 入力した C# コードが正しい場合は、[出力] ウィンドウに "Hello World!" という語句が表示されます。
重要
このコードの実行中に何らかのエラーが表示される場合、コードをコピーして .NET エディターに貼り付け、コードをもう一度実行してみます。
記述したコードはどうなりますか。
ブラウザー バージョンの Try .NET を使用すると、Try .NET、Visual Studio 2022、または Visual Studio Code を使用して完全なアプリケーションを作成したときには表示されるコードの一部が、表示されなくなります。
非表示のコードを含めると、例は次のようになります。
using System;
public class Program
{
public static void Main()
{
Console.WriteLine("Hello world!");
}
}
ブラウザー内の Try .NET 環境によって使用される手順は、前に学習したものと同じです。 唯一の違いは、エクスペリエンスを簡略化するため、コードの一部が非表示になることです。
コードの展開されたビューに注目すると、一連の中かっこ { }
があることがわかります。 C# の場合、"コード ブロック" を定義するために中かっこのペアが使用されます。 異なる種類のコード ブロックは、異なる目的に使用されます。
中かっこのセットを含むコード public static void Main()
により、"メソッド" と呼ばれるコード ブロックの種類が定義されます。 メソッドには、ソフトウェア システム内で 1 つの目的または責任のために機能するコードのグループが含まれます。
この例では、メソッドには 1 行のコードだけが含まれており、その目的はメッセージを表示することです。 大規模なプログラムでは、数百から数千のメソッドを使用できます。
メソッドは、クラスと呼ばれる他のコード ブロックの内部に編成されます。 クラスには、1 つまたは複数のメソッドを含めることができます。 クラス内のすべてのメソッドには、システム内で関連する目的があります。 前に示したコードのクラスには、Program
という名前が付けられています。
挿入したコード行においては、Console.WriteLine()
によって WriteLine()
メソッドが "呼び出されて"、つまり実行されています。 WriteLine()
メソッドは Console
クラスに含まれています。
このコードはどこにあるのでしょうか。 それは基本クラス ライブラリの中です。 実際、その完全な名前は System.Console.WriteLine()
です。 前のコードの例では、最初の行は次のようになっています。
using System;
Console.WriteLine()
の呼び出しでは、System
という単語が省略されています。 しかし、コードの最初の行 using System;
により、コード内にメソッドの定義が見つからない場合は基本クラス ライブラリを探すよう、C# コンパイラに指示されます。
Note
メソッド、クラス、System、using といった C# 特有の用語については気にしないでください。 それらについては後で学習できます。 いま注目しているのは、コードのコンパイルと実行のプロセスです。
Main() メソッドに挿入した後、コードはどうなりますか。
この演習の最も重要な部分は、記述したコードを Main()
メソッドに挿入するとどうなるか、ということです。 次の処理は、サーバー上で行われることに注意してください。
新しいコードをコンパイルするコマンドを実行すると、C# コンパイラが呼び出されます。
C# コンパイラにより、コードをコンパイルすることができ、構文エラーがないことが確認されます。 コードをコンパイルできない場合、コンパイラは停止し、[出力] ペインにエラー メッセージが返されます。
C# コンパイラが成功した場合は、.NET ランタイムによって新しくコンパイルされた .NET アセンブリが開かれます。 既定では、命令の実行を開始するため、
Program
という名前のクラスでMain()
という名前のメソッドが検索されます。命令ごとに、.NET ランタイムによってコードの各行が評価されます。 命令が実行されて、次のコード行に移動します。
この場合、"Hello world!" という単語を出力する命令が完了すると、実行パスは次の行に進みますが、何も検出されません。 パスは終了し、.NET ランタイムによってそのメモリからプログラムが削除されます。 その間に、
WriteLine()
命令からの出力が Web ブラウザーに返されます。
この一連のイベントと、プログラミング言語、コンパイラ、ランタイムの間での基本的な役割分担が、まず初めに理解する必要のある最も重要な概念です。