私はいつも、値による呼び出しと値による受け渡しは同義語だと思っていました。しかし、最近、誰かが彼らを違うように呼んでいるのを聞いた。それらは同じものですか?
また、対応する参照による用語についても話します。
私はいつも、値による呼び出しと値による受け渡しは同義語だと思っていました。しかし、最近、誰かが彼らを違うように呼んでいるのを聞いた。それらは同じものですか?
また、対応する参照による用語についても話します。
「誰か」は間違っています。あなたの質問に直接答えるウィキペディアの記事をチェックしてください。この記事でも、特定の「誰か」を指すことができます。
値渡し評価 (値渡しとも呼ばれる) は、最も一般的な評価戦略です。
それらは同義です。
「call」はメソッドを意味し、「pass」は引数を意味します。
例:
はい、これらの用語は私が理解している同義語です。
しかし、あなたは間違った聴衆に尋ねていると思います。あなたの同僚がそれらを異なると見なす場合、あなたと彼らの理解は一致していません。それらが同じであると私が考えるかどうかは関係ありません。重要なのは、あなたの同僚が実際に何を意味するかです.
私は常にそれらを同義語と考えてきましたが、考えてみると、おそらくメソッドを直接呼び出すことと、参照 (つまりデリゲート) を介してメソッドを呼び出すことを区別しようとしているのでしょう。つまり、次のようになります。
public delegate void MyDelegate();
class MyClass
{
public void DoSomething()
{
// ...
}
}
MyClass thing = new MyClass();
あなたが書いた場合、彼らはそれを言おうとしています:
thing.DoSomething();
それなら「値渡し」ですが、こう書くと:
MyDelegate dlgt = thing.DoSomething;
dlgt(); // calls thing.DoSomething through the delegate reference
それなら「参照渡し?」