C#会按值传递参数,除非您指定不同的要求。如果参数类型是结构,则将其值复制,否则将复制对对象的引用。返回值也是如此。
您可以使用ref
orout
修饰符修改此行为,必须在方法声明和方法调用中都指定它。两者都将该参数的行为更改为通过引用。这意味着您不能再传递更复杂的表达式。ref
和之间的区别在于out
,当将变量传递给ref
参数时,必须已经对其进行了初始化,而传递给out
参数的变量则不必进行初始化。在该方法中,该out
参数被视为未初始化的变量,并且必须在返回之前分配一个值。