括号在P / invoke中表示什么[dllimport

时间:2012-02-07 19:28:32

标签: c# visual-studio pinvoke

我很想知道为什么我们在进行P / invoke时 dllimport调用是在“[” 而不只是一个类或一个函数

e.g:

[DllImport("something.dll",....)]

而不是

DllImport("something.dll,....)

甚至

DllImport.import(something.dll...)

我不想重写它,我的问题是“[”代表或意味着什么?在这个例子中它叫什么?为什么使用它?

2 个答案:

答案 0 :(得分:4)

在这种情况下,它表示“属性”; DllImportAttributeMSDN)。简单地说:它是用于向代码添加元数据的语言中的语法。

该语言允许您定义自己的属性,或任何来自库的属性。属性可用于程序集,类型,方法,属性,字段,事件,参数等 - 或仅限于其中的一小部分。例如,DllImportAttribute仅限于方法。大多数只有在运行时使用反射进行检查时才有意义,但有些则由编译器直接处理。

答案 1 :(得分:3)

DllImport不是一种方法。这是一个属性。括号只是应用属性的语法。

语法在C#规范的附录B中指定,B.2.13节,属性。