object パラメーターの参照方法に関して、次のメソッドの違いは何だろうか。
public void DoSomething(object parameter){}
と
public void DoSomething(ref object parameter){}
同じ参照内のオブジェクトをオーバーライドしないようref object parameter
に参照を変更したい場合に使用する必要がありますか?object
Argument Passing ByVal: 値による引数の受け渡しについて説明します。これは、プロシージャが変数自体を変更できないことを意味します。
Argument Passing ByRef: 参照による引数の受け渡しについて説明します。これは、プロシージャが変数自体を変更できることを意味します。
その意味を見るref object
と、引数はobject
型でなければなりません。
ドキュメントで読むことができます:
仮パラメーターが参照パラメーターの場合、メソッド呼び出しの対応する引数は、キーワード ref と、それに続く仮パラメーターと同じ型の変数参照 (§5.3.3) で構成される必要があります。変数を参照パラメーターとして渡す前に、変数を確実に割り当てる必要があります。