2015-02-05 81 views
0

我一直在學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); 
+1

「DllImport」用於在.Net框架中使用託管框架中的非託管代碼。詳細瞭解[使用DllImport屬性](https://msdn.microsoft.com/en-us/library/aa984739%28v=vs.71%29.aspx) – Habib 2015-02-05 15:35:01

+0

[DllImport屬性](https:// msdn。 microsoft.com/en-us/library/aa984739%28v=vs.71%29.aspx) – Izzy 2015-02-05 15:35:29

+0

輝煌,謝謝。另外,我忘了問什麼是[STAThread]?爲什麼在括號之間? – Sicarius 2015-02-05 15:35:46

回答

4

,但我不知道這行代碼被稱爲?

任何在[ ]Attribute它提供了編譯器,或使用反射來深入瞭解/提示,其提供一個圖,該附帶它的(在[])聲明之後的對象的正在運行的程序。

查看Attributes Tutorial的介紹。

+0

非常感謝,將在40秒內作爲答案^^^ – Sicarius 2015-02-05 15:47:55

+2

任何東西,除非它是[數組索引器](https://msdn.microsoft.com/en-us/library/a3hd7ste.aspx):-) – 2015-02-05 15:55:04

+1

@HansKesting或者不是數組索引器的索引器。 – Servy 2015-02-05 16:04:34

1

也許this link將會對你有用。

什麼屬性是從頁面的相關段落的位置:一般在類型前面物理應用

屬性基礎

屬性和類型 成員聲明。他們宣稱用方括號「[」和 「]」,屬性周邊如以下ObsoleteAttribute 屬性:

[ObsoleteAttribute]屬性名稱中的「屬性」部分是 可選。因此,以下內容與上面的屬性相同:

[已過時]您會注意到該屬性僅聲明瞭屬性的 名稱,並用方括號括起來。許多屬性 都有參數列表,允許包含額外的信息 甚至進一步定製程序。清單16.1顯示瞭如何使用ObsoleteAttribute屬性的各種方法。

Microsoft's MSDN page,描述了該特定屬性的用法。

當重新使用託管應用程序中的現有非託管 代碼時,DllImport屬性非常有用。例如,您的託管應用程序 可能需要調用非託管WIN32 API。

欲瞭解更多深入信息,在谷歌或canonical sources on MSDN的簡單搜索,這將說明目的,用法和代碼示例。

+1

也使用鏈接的目標的實際頁面標題而不是「此鏈接」。 – OmegaMan 2015-02-05 16:36:24

相關問題