.NET中传递数组的性能比较

nic*_*las 0 .net c# arrays

在C#中(可能在VB.NET中)有三种方法可以将常量值数组传递给函数,即:

byte[] buffer = {0};
someFunction(buffer);
Run Code Online (Sandbox Code Playgroud)
byte[] buffer = new byte[] {0};
someFunction(buffer);
Run Code Online (Sandbox Code Playgroud)
someFunction(new byte[] {0});
Run Code Online (Sandbox Code Playgroud)

而简单的类型转换数组声明符是无效的语法:

someFunction((byte[]) {0});
Run Code Online (Sandbox Code Playgroud)

题:

三种工作方法之间的性能差异是什么 - 在CPU使用率,内存分配和整体程序大小方面?使用new关键字是否会对RAM使用或分配产生任何影响,尤其是在函数调用之后声明的变量立即超出范围的情况下?

Eri*_* J. 9

所有这些有效方法都将以完全相同的方式传递数组.您演示了三种合法声明和初始化数组的方法,以及每次将该数组传递给另一个方法时.

someFunction((byte []){0});

根本不是有效的声明语法.