我很想知道为什么我们在进行P / invoke时 dllimport调用是在“[” 而不只是一个类或一个函数
e.g:
[DllImport("something.dll",....)]
而不是
DllImport("something.dll,....)
甚至
DllImport.import(something.dll...)
我不想重写它,我的问题是“[”代表或意味着什么?在这个例子中它叫什么?为什么使用它?
答案 0 :(得分:4)
在这种情况下,它表示“属性”; DllImportAttribute
(MSDN)。简单地说:它是用于向代码添加元数据的语言中的语法。
该语言允许您定义自己的属性,或任何来自库的属性。属性可用于程序集,类型,方法,属性,字段,事件,参数等 - 或仅限于其中的一小部分。例如,DllImportAttribute
仅限于方法。大多数只有在运行时使用反射进行检查时才有意义,但有些则由编译器直接处理。
答案 1 :(得分:3)
DllImport不是一种方法。这是一个属性。括号只是应用属性的语法。
语法在C#规范的附录B中指定,B.2.13节,属性。