大復活C#学習準備_3

 とりあえず、コンソールに表示してみる。

f:id:yasui_swift:20201030063345p:plain

 

f:id:yasui_swift:20201030062959p:plain

readLine

最初のプロジェクトができました。

以下、ファイルに記載されているコードについて順番に学習する。

■using <名前空間>;  //using ディレクティブ(using directive)

ファイルの先頭に記載する。ディレクティブとはコンパイラが処理を行うときの設定を指示するもの。名前空間(namespace;後述)を含めた完全限定名による型の参照は冗長になるため、名前空間を省略した簡易な参照をサポートする。これにより指定された名前空間の型は型名だけで参照可能となる。

【例】上述のConsole.WritelineというメソッドはSystemという名前空間に含まれている。本来はSystem.Console.WriteLineと書くべきだが、「using System;」がファイルの先頭に記述されているため、Systemの名前空間を省略してConsole.WriteLineと書くことができる。

名前空間が指定するエイリアス(alias:別名付け)で代用できるようにすることもできる(例 using <エイリアス> =< 名前空間>;【例】using Sample2 = Sample1;)。

■namespace 名前空間の名称 { } // 例 namespace readLine01{ }(上記参照)

プログラムの規模が大きくなるとクラス(あるいは型)の数が多くなり、クラスを関連性のあるもの同士まとめて管理するような仕組みが必要になる。クラス(あるいは型)を階層的に分類するための機構が名前空間(namespace)である。

名前空間で定義したクラス、構造体、インターフェイス、列挙体、デリゲート、他の名前空間は、その名前空間特有のもので、他の名前空間の同じ名前があっても問題が生じない。名前空間とは名前の競合を防ぐ役割を果たす。

名前空間の中にあるクラスを使うときは「名前空間.クラス名」と書く。

<補足> 型名前空間は型を分類する仕掛けである。型にはクラス(class:ユーザにより定義される参照型のデータ型)、構造体(struct:ユーザによって定義される値型のデータ型)、インターフェイス(interface:セットできるメソッドやプロパティの仕様を示すデータ型)、列挙型(enum:名前付き定数セットのデータ型)、デリゲート(delegate:メッソドへの参照を持つデータ型)がある。デリゲート以外はメンバを持つことができ「コンテナ型」と呼ばれる。メンバにはデータとなる「データメンバ」、実行可能なステートメントを含む「関数メンバ」、入れ子となる「型メンバ」がある。

■class クラス名{ } // class Program { } (上記のプロジェクトではProgramがクラス名)

関連した変数と関数をひとまとめにしたもの。

クラスを具体化したものがオブジェクト(object)であり、あるクラスを鋳型として作らられたオブジェクトをインスタンス(instance、実体)という。オブジェクト=インスタンスとして考えてもよい。クラスの書き方は以下、

class クラス名

{

    //ここに処理が記載される

   //処理は関数と変数からなり、関数はメソッド、変数はフィールドと呼ばれる

}

ここまでが、もっとも基本的なコードの書き方である

■メソッド(関数)

C#ではクラスのもつ関数をメッソドと呼ぶ。

上記ではProgramというクラス(class)にMainという関数(メッソド)が定義されている。

■フィールド(またはメンバー変数)とローカル変

クラスの中、メッソドの外にある変数をフィールド(またはメンバー変数)と呼び、メッソドの中で宣言する変数をローカル変数という。ここでは文字列変数(string)のnameがローカル変数に相当する。

■static void Main(string[ ] args):Mainメソッド。

プログラムは「Main」という「メソッド」から始まる。

static :型にあるメンバはその存在の在り方で「静的メンバ」と「インスタンスメンバ」に分けられる。static修飾子は静的メンバをあらわし、インスタンスではなく型(すなわち、クラス)そのものに属する。Mainメソッドは必ずstaticにする。static修飾子のついたstaticメソッドからはstatic メソッドしか呼び出せない。Mainメソッドはstaticメソッドなので呼び出すメソッドもstaticメソッドにする。

void :戻り値なしの意味。

(string[ ] args)内のargs:arguments(=引数)の略で、Mainの引数としてよく使われる。

<補足> public static void Main( ):Mainが終了しても戻り値を返さない。

<補足> public static int Main( ):Mainが終了時、int型の値を返す(多くはOSに返す。一般に無事終了した場合は0を、異常終了の場合はマイナス値を返す)。

<補足> public static void Main(string[ ] args )またはpublic static int Main(string [ ] args):コマンドラインや他のプロセスから引数つきで呼び出すことが出来る。argsは好きな名前でよい。前者(void)は値を返さず、後者はint型の値を返す。詳しくはオーバーロード(後述)の項で学習予定。