我已经学习了一段时间的C#。写了一些程序等我没有处理过高级概念,但是在研究其他人的时候呢?代码我注意到有一些代码行我不明白它们为什么存在。在我明白的例子中,我知道它正在导入DLL,但我不确定这行代码是什么?这是一个声明吗?我在哪里可以了解更多关于它们的信息?
尝试在不知道所谓的内容的情况下学习某些内容是不可能的:)
示例:
[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true)]
static extern IntPtr SendMessage(IntPtr hWnd, Int32 Msg, IntPtr wParam, IntPtr lParam);
答案 0 :(得分:4)
但不确定这行代码是什么?
[ ]
中的任何内容都是Attribute
,它提供编译器或正在运行的程序,该程序使用反射来获取洞察/提示,这些洞察/提示提供了对象的元视图在其([]
)声明之后。
请参阅Attributes Tutorial了解相关信息。
答案 1 :(得分:1)
也许this link对您有用。
有关页面属性的相关段落如下:
属性基础
属性通常在物理上应用于类型和类型之前 成员声明。他们用方括号宣布," ["和 "]",围绕属性,例如以下的ObsoleteAttribute 属性:
[ObsoleteAttribute]"属性"属性名称的一部分是 可选的。所以以下内容相当于上面的属性:
[已淘汰]您将注意到该属性仅使用 属性的名称,用方括号括起来。很多属性 有参数列表,允许包含其他信息 进一步定制程序。清单16.1显示了各种 如何使用ObsoleteAttribute属性的方法。
并在Microsoft's MSDN page上,描述了该特定属性的使用。
重用现有的非托管时,DllImport属性非常有用 托管应用程序中的代码。例如,您的托管应用程序 可能需要调用非托管WIN32 API。
有关更深入的信息,请在Google或canonical sources on MSDN上进行简单搜索,以说明目的,用法和代码示例。