C#トリビアルメモ6 (雑多な文法メモ)

とりとめもない、こまごまとしたメモ。しばらく離れてると分からなくなる。

1.インターフェイスにもアクセサ、インデクサは設定できる。


interface IHoge
{
   int Foo
   {
      get;
   }

   string this[int index]
   {
      get;
      set;
   }
}

2.refは参照渡し。オブジェクトの場合は参照の参照渡し。定義でも呼び出しでもrefがいる。


public void hoge(ref int foo)
{
   foo = 1;
}

-------------------------------------
int a = 0;
hoge(ref a);
// a == 1

public void hoge(ref int[] foo)
{
   foo[0] = 4;
}
public void hogehoge(int[] foo)
{
   foo[0] = 5;
}
public void hogehogehoge(int[] foo)
{
   int[] bar = new int[3] {3, 2, 1};
   foo = bar;
}
public void hogehogehogehoge(ref int[] foo)
{
   int[] bar = new int[3] {3, 2, 1};
   foo = bar;
}
-------------------------------------
int[] a = {1, 2, 3};
hoge(ref a);
// a == {4, 2, 3}

hogehoge(a);
// a == {5, 2, 3}

hogehogehoge(a);
// a == {5, 2, 3}

hogehogehogehoge(ref a);
// a == {3, 2, 1}

3.配列の初期化一覧


int[] a = new int[3] {1, 2, 3};
---------------------------------------
int[] b = new int[] {1, 2, 3};
---------------------------------------
int[] c = {1, 2, 3};
---------------------------------------
int[] d;
d = new int[3] {1, 2, 3};
---------------------------------------
int[] e;
e = new int[] {1, 2, 3};
---------------------------------------
int[] f = new int[3];
for (int i = 0; i < f.Length; f++) {
   f[i] = i;
}

4.乱数は未満


Random rand = new Random();
int a = rand.Next(0, 100);
// a == 0~99

以上

コスミー について

昔(?)はゲーム作ってました。 今もなんか作ろうとしています。
カテゴリー: C# パーマリンク

コメントを残す

メールアドレスが公開されることはありません。