JavaとC#の戻り型のメソッドは、参照または値によるものですか?それは私にとって本当に混乱しています、いくつかの説明が必要です。
皆さん、ありがとうございました。
Javaでは、すべてが値で返されます。これには参照が含まれ、ここで混乱が生じます。
私が持っている場合:
Trade t = new Trade();
次にt
、参照です(これは、トレードですが、タイプを参照します。t
実際には参照です)。メソッドからそれを返すとき、値によって参照を返します。参照は引き続きその元のオブジェクトを指しています。
したがってt
、メソッドからそれを返し、そのメソッドでさらにメソッドを呼び出すと、Trade
最初にポイントしたメソッドが呼び出されます。
C#は、値または参照のいずれかで結果を返すことができます。これは、メソッドの定義方法によって異なります。
Javaは値でのみ返すことができます(厳密に言えば、値で参照を返すことができます)。
この小さな記憶のスローガンが HeadFirst Book に書かれているように..
Roses are Red,
This poem is Choppy,
Passing By Value is
Passing By Copy.
Java
常に渡されるか返される値。
参照またはコピーのいずれかによって返すことC#
ができます。