<<追記20190603
今まで扱ってきた関数は内部で閉じてた。
それがグローバル変数が登場する。
voidは何にも返さない宣言名である。
なのでreturn値も指定しないで終了する。
int x = 5;//グローバル変数1
int y = 10;//グローバル変数2
void swap() {
int x_save = 0;
x_save = x;
x = y;
y = x_save;
return;
}
こんな事がC言語で出来る。
それがclassの領域でグローバルクラス変数を用いるのがオブジェクトなのである。
なのでグローバルクラス変数を含むのがオブジェクト指向である。
それにコンストラクタをつけるとこんな感じになる。
コンストラクタとはnewした時に実行される関数である。
なので関数名はクラス名と同じである。
this.xとは自分自身のクラスのxという意味である。
this.yも同じである。
それで上のC言語をC#のクラスで表現するとこうなる。
class sw_class
{
private int x;//グローバルクラス変数1
private int y;//グローバルクラス変数2
public sw_class(int x1, int y1)
{
this.x = x1;
this.y = y1;
}
public void swap()
{
int x_save = 0;
x_save = this.x;
this.x = this.y;
this.y = x_save;
return;
}
public void sw_show()
{
Console.WriteLine("(x={0},y={1})を表示します。", x, y);
return;
}
}
C言語はC++で表現した。
ソースは以下からどうぞ
http://wakkii.umu.cc/walking_road/Console_swap_Application.txt
C#のソースは以下からどうぞ
http://wakkii.umu.cc/walking_road/ProgramCsharp.txt
何かC#のコンソールはdllが生成される。
dotnet プログジェクト名.dll
みたいにしないとコマンド表示されなかった。
明日もボチボチやりたい。
よろしく。
<<追記20190603end
0 件のコメント:
コメントを投稿