C#でHello Worldしたときに、using
とかnamespace
って何?と思ったので書いておきます。
既にC#の環境がある方は最初の[準備]は飛ばしてください。
[準備]C#でHello Worldを表示する
まずは、C#の動作環境を整えます。
VS Codeと.NET Core SDKを使いました。
(環境のセットアップは https://qiita.com/555443/items/55bfe07b45477bfc6e3a を参照)
コンソールでdotnet new console
を実行すると以下のコードが生成されました。
using System;
namespace Sample
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
そして、dotnet run
を実行するとHello World!
と無事に表示されました。
それぞれ何をしているのか
では、本題のusingとか、namespaceって何なのかを見ていきましょう。
namespace
C#のプログラムの構造は、外側からネームスペース、クラス、メソッド、変数…という形で構成されています。つまり、各クラスは一つのネームスペースに属していると言えます。また、今回のclass Program
はnamespaceがSample内で定義されているということですね。ネームスペースを指定するというのは、他のネームスペースにある同じクラス名と混ざらないようにする仕組みなのです。
(以下の画像は @IT / 連載:C#入門 より引用)
using
上記でネームスペースの役割を述べました。では、usingの役割はというとそのプログラム内で用いるネームスペースを宣言することです。
プログラム内でConsole.WriteLine("Hello World!")
を使って何気なくHello World!の出力が実現されていますが、プログラム内にConsoleクラスやWriteLineメソッドは宣言されていません。しかし、using System;
によってSysteのネームスペースの利用を宣言することで、その中ではSystemのネームスペースに存在するクラスを利用することができるのです。