我编写C#代码的经验很少,但我想为我的一些代码制作一个强大的Windows GUI。我想知道以下代码是通过值还是通过引用传递的。具体来说,如果bytes[]
在传递给神秘之前被复制了吗?我在extern中需要一个explicate ref语句吗?
[DllImport("unSHA.dll", CallingConvention = CallingConvention.Cdecl)]
private static extern void time(byte[] bytes);
答案 0 :(得分:7)
除非您使用ref
或out
关键字,否则参数始终按值传递。
数组是引用类型,因此传递的值是对数组的引用的副本。
答案 1 :(得分:1)
bytes参数通过引用传递,对于.NET中的所有数组类型都是如此。