what does the bracket represent in P/invoke [dllimport

本文关键字:invoke dllimport in does the bracket represent what | 更新日期: 2023-09-27 18:22:51

我很想知道为什么我们在执行p/invokedllimport调用位于"["而不仅仅是一个类或函数

例如:

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

而不是

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

甚至

DllImport.import(something.dll...)

我不想重写它,我的问题是"["代表什么或意味着什么?在这种情况下它叫什么?为什么使用它?

what does the bracket represent in P/invoke [dllimport

在此上下文中,它表示一个"属性";DllImportAttribute(MSDN)。简单地说:这是一种已经在语言中用于向代码添加元数据的语法。

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

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

语法在C#规范的附录B第B.2.13节"属性"中有规定。