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