C♯相談室 Part28
■ このスレッドは過去ログ倉庫に格納されています
0396デフォルトの名無しさん
2006/01/02(月) 11:30:57public struct Hoge {
public int Value;
public void Add(int value) { this.Value += value; }
public Hoge(int value) { this.Value = value; }
public override string ToString() { return this.Value.ToString(); }
public static void Main() {
//ボクシング。
object obj = new Hoge(3);
//(Hoge)objの時点で値のコピーになるので、
((Hoge)obj).Add(4);
//objには影響が無い。
Console.WriteLine(obj);
//リフレクションでobjのメソッドを直接呼ぶと、
typeof(Hoge).InvokeMember("Add", BindingFlags.InvokeMethod, null, obj, new object[] {4});
//値のコピーが発生しないのでobjに影響する。
Console.WriteLine(obj);
}
}
■ このスレッドは過去ログ倉庫に格納されています