P/invoke [dllimport 中的括号代表什么
我很好奇为什么当我们进行 P/invoke 时 dllimport 调用位于“[”中 而不仅仅是一个类或函数,
例如:
[DllImport("something.dll",....)]
而不是
DllImport("something.dll,....)
或者甚至
DllImport.import(something.dll...)
我不想重写它,我的问题是“[”代表或意味着什么?在这种情况下它叫什么?为什么使用它?
I am curious to know why when we are doing P/invoke
the dllimport call is in a "["
and not just a class or a function
e.g.:
[DllImport("something.dll",....)]
rather than
DllImport("something.dll,....)
or even
DllImport.import(something.dll...)
I do not want to rewrite it, my questions is what does "[" represent or mean ? what is it called in this instance ? Why is it used ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在这种情况下,它表示“属性”;
DllImportAttribute
(MSDN)。简单地说:它是语言中已有的语法,用于将元数据添加到代码中。该语言允许您定义自己的属性或库中的任何属性。属性可用于程序集、类型、方法、属性、字段、事件、参数等,或仅限于其中的一小部分。例如,
DllImportAttribute
仅限于方法。大多数仅在运行时使用反射检查时才有意义,但有些由编译器直接处理。In this context, it signifies an "attribute";
DllImportAttribute
(MSDN). Simply : it is a syntax already in the language for adding metadata to the code.The language allows you to define your own attributes, or any from libraries. Attributes can be used on assemblies, types, methods, properties, fields, events, parameters, etc - or restricted to a small subset of that.
DllImportAttribute
is limited to methods, for example. Most only have meaning when inspected with reflection at runtime, but some re handled directly by the compiler.DllImport 不是一种方法。它是一个属性。括号只是应用属性的语法。
C# 规范附录 B 的 B.2.13 节“属性”中指定了语法。
DllImport is not a method. It is an attribute. The brackets are just the syntax for applying attributes.
The syntax is specified in appendix B of the C# specification, section B.2.13, Attributes.