通过参考VS静态变量传递

时间:2018-04-22 19:10:31

标签: c#

根据我的理解,通过引用传递变量意味着改变了传递给函数参数的原始变量。但是根据我的理解,静态变量意味着当用作函数的参数时变量会被更改。那么这两个都不是一样的吗?

1 个答案:

答案 0 :(得分:4)

  

根据我的理解,通过引用传递变量意味着传递给函数参数的原始变量被更改。

该位置已通过,是的;由于呼叫者提供了位置,呼叫者可以看到变化。

  

但是根据我的理解,静态变量意味着当用作函数的参数时变量会被更改。

这不是所有的含义。静态字段仅作为字段存在一个类型(或每个泛型类型参数的组合)。这就是它的意思。将静态字段的传递给方法时,静态字段中的值将被读取一次并复制到堆栈中,并且 copy 将传递给方法。调用期间不会更改静态字段的值。

这里的混淆可能实际上是“引用类型”,而不是“通过引用传递”;如果静态字段实际上是对象的引用,则所有调用者都将观察到对象的更改。但这不是改变的领域:它是对象。