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