Насколько я понимаю C# передает параметры в методы ссылкой. В VB.NET можно указать это с ByVal и ByRef. Значением по умолчанию является ByVal.
Это для совместимости с Visual Basic 6.0, или это просто случайно? Кроме того, как я могу указать, что использовать в C#? Мне отчасти нравится идея передать параметры значением.
Параметры в C # по по умолчанию передаются по значению. Нет модификатора, чтобы сделать это явным, но если вы добавите ref
/ out
, параметр будет ссылочным.
Обычная путаница здесь заключается в различии между:
В C # по умолчанию используется передача по значению. Однако, если передаваемая переменная относится к типу ссылки, тогда вы передаете ссылку ссылку по значению. Возможно, в этом причина вашего замешательства.
В основном, если вы передаете ссылку по значению, вы можете изменить объект, на который она ссылается, и эти изменения будут сохраняться вне метода, но вы не можете сделать так, чтобы переменная ссылалась на другой объект, и это изменение сохранялось за пределами метод.
Параметры в C # по умолчанию передаются "ByVal". Вы должны указать «ref» или «out», если хотите другое поведение.