'[]'和它之间的代码是什么?

时间:2015-02-05 15:33:10

标签: c# .net

我已经学习了一段时间的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);

2 个答案:

答案 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上进行简单搜索,以说明目的,用法和代码示例。