私が理解しているように、C#はパラメーターを参照によってメソッドに渡します。 VB.NETでは、これをByValおよびByRefで指定できます。デフォルトはByValです。
これはVisual Basic 6.0との互換性のためですか、それとも単なるランダムですか?また、C#で使用するものを指定するにはどうすればよいですか?値でパラメーターを渡すという考え方が好きです。
C#のパラメーターは、defaultによって値で渡されます。これを明示的にする修飾子はありませんが、ref
/out
を追加する場合、パラメーターは参照です。
ここでの通常の混乱は、次の違いです。
値渡しはC#のデフォルトです。ただし、渡される変数が参照型である場合は、値としてreferenceを渡します。これがおそらくあなたの混乱の起源です。
基本的に、値で参照を渡す場合、参照するオブジェクトを変更でき、これらの変更はメソッドの外部で持続しますが、変数に別のオブジェクトを参照させ、その変更をメソッドの外部で持続させることはできません。
C#のパラメーターは、デフォルトで "ByVal"が渡されます。別の動作が必要な場合は、「ref」または「out」を指定する必要があります。