C#-在处理流之前返回内存流的字节数组的效果



我使用的内存流如下:

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

返回的字节数组是通过引用传递还是通过值传递?

数组是Array类的实例,因此它始终是一个引用,没有值。ToArray从流中读取值,并将它们存储在新实例化的数组对象中。

这意味着在任何时候我都可能。。。空

没有。如上所述,您将返回一个新的数组实例,其中包含从流中读取的值。使用本地变量myData时,不可能再次将其设置为null

这将是一个引用,但数据将存储在内存中的某个位置。所以当"myMethod"返回时,流将被关闭,但您的数组仍将包含数据。数组可以为null的唯一方法是流不包含任何数据。

相关内容

  • 没有找到相关文章

最新更新