操作が同一であれば、例1では、オブジェクトへの参照が渡され、オブジェクトが操作されます。例2では、オブジェクトへの参照が渡され、オブジェクトが操作され、次に同じ参照が返されます。ref型を取るvoidメソッドとそれを操作するメソッドと同じオブジェクトに参照を返すメソッドとの間に違いはありますか?
static void Foo(SomeReferenceType t)
{
//Do something with t
}
static SomeReferenceType Foo(SomeReferenceType t)
{
//Do same thing with t
return t;
}
Bar bar = new Bar();
//Does this
Foo(bar);
//Do the same thing as this
bar = Foo(bar);
あなたが産生されたILを見ていました両方の? – Oded
私は最初の行が 'static void Foo(ref SomeReferenceType t)' – Douglas
であると仮定します。ピアレビューア:私の編集リクエストを破棄してください。 – Douglas