在多个方法调用中传递大字符串或字节数组是否合适?

时间:2012-08-15 16:40:00

标签: c#-4.0 methods parameters bytearray

如果我没记错,即使我们将大字符串或字节数组作为参数传递给方法,它只会将指针传递给数据堆而不是完整数据。所以它不应该降低任何性能,或者它不应该不必要地堆积内存。只是想确认我对以上陈述的理解是否正确? 我知道最好将字符串或字节数组保存为类中的私有变量,并在所需的每个方法中访问它,从而从方法调用中消除一个额外的参数。

感谢

1 个答案:

答案 0 :(得分:3)

  

如果我没记错,即使我们将大字符串或字节数组作为参数传递给方法,它只会将指针传递给数据堆而不是完整数据。

是的,当您传递任何引用类型参数时,只会按值传递引用。请注意,这与“按引用传递”不同,后者适用于引用类型和值类型的参数。

有关详细信息,请参阅reference types and value typesparameter passing上的文章。

  

我知道最好将字符串或字节数组保存为类中的私有变量,并在所需的每个方法中访问它,从而从方法调用中消除一个额外的参数。

这完全取决于背景。它在逻辑上是不是阶级状态的一部分吗?