我知道第一组关键字
这两个集合有没有可能不等同?
in,out,ref
可以在所有C#函数中使用,而第二组属性[In],[Out],[In,Out]
则是为了马克罗。但是,我不确定当它们用于本机代码的函数声明时是否具有相同的含义。例如,下面两个声明是否等效?[DllImport("xxx.dll")]
void FillArray1(ref int[] arr, in int length);
[DllImport("xxx.dll")]
void FillArray2([In, Out] int[] arr, [In] int length);
这两个集合有没有可能不等同?
In
或Out
属性的作用是什么,但是关键字in
和out
在编译时会被检查(用于只读/只写访问),并且参数是按引用传递而不是按值传递。通常可以通过反射在运行时查询属性。 - Zereges