とりとめもない、こまごまとしたメモ。しばらく離れてると分からなくなる。
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
以上