1

C# コードを書いた経験はほとんどありませんが、コードの一部に対して堅牢な Windows GUI を作成したいと考えています。次のコードが値渡しなのか参照渡しなのか疑問に思っていました。具体的bytes[]には、ミステリーに渡される前にコピーされますか? extern に明示的な ref ステートメントが必要ですか?

 [DllImport("unSHA.dll", CallingConvention = CallingConvention.Cdecl)]
 private static extern void time(byte[] bytes);
4

2 に答える 2

7

reforoutキーワードを使用しない限り、パラメーターは常に値で渡されます。

配列は参照型であるため、渡される値は配列への参照のコピーです。

于 2012-12-10T08:49:54.667 に答える
1

The bytes parameter is passed by reference which is true for all array types in .NET.

于 2012-12-10T08:46:45.990 に答える