我正在使用这样的内存流:
public static byte[] myMethod()
{
using(MemoryStream stream = new MemoryStream())
{
//some processing here.
return stream.toArray();
}
}
我在调用者方法中分配返回的字节数组,如下所示:
public static void callerMethod()
{
byte[] myData = myMethod();
//Some processing on data array here
}
返回的字节数组是通过引用还是按值传递的?如果返回的数组是引用的,那么这意味着我 callerMethod 数组中的 myData 可能 null 在我还在处理数据的任何时候?
答案 0 :(得分:3)
返回的字节数组是通过引用还是按值传递的?
数组是Array
类的实例,因此它始终是引用而没有值。 ToArray
从流中读取值并将它们存储在新实例化的数组对象中。
这是否意味着我可能随时...... null
没有。如上所述,您将返回一个包含从流中读取的值的新数组实例。使用它时,您的本地变量myData
不可能再次设置为null
。
答案 1 :(得分:0)
这将是一个参考,但您的数据将存储在您的内存中。 那么当" myMethod"将返回,流将被关闭但您的数组仍将包含数据。 数组可能为null的唯一方法是您的流不包含任何数据。