I know that the first set of keywords
in, out, ref can be used in all C# functions, and the second set of attributes
[In], [Out], [In, Out] is for marshaller.
I am not sure if they mean the same thing when used in function declaration of native code. For example, are the following two declarations equivalent?
[DllImport("xxx.dll")] void FillArray1(ref int arr, in int length); [DllImport("xxx.dll")] void FillArray2([In, Out] int arr, [In] int length);
Are there any case that the two sets are not equivalent?