2019年6月3日月曜日

雑記

<<追記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 件のコメント:

コメントを投稿