簡體   English   中英

C#方括號和大於/小於

[英]C# square brackets and greater/less than

在C#中,您可能會看到以下內容:

[<DllImport("myUnmanagedDLL.dll")>]

或類似的行(但沒有大於/小於符號):

[assembly: AssemblyTitle("MyProject")]

我知道第一個被稱為屬性(它有gt和lt標志),可用於向方法,類型等添加一種元數據,但第二種語法是什么意思? 我正在嘗試將這種語法翻譯成F# - 即,這一行:

[MonoMac.Foundation.Register("AppDelegate")]

但是第二種語法是什么意思呢?

這意味着該屬性正在應用於程序集,而不是應用於類型(類或結構)或成員。

在F#中,您嘗試翻譯的行應為:

[<MonoMac.Foundation.Register("AppDelegate")>]

如果沒有看到更多內容,則無法確定應該應用的位置(類型,方法等)。 我懷疑這會在F#中繼續你的type定義,因為這通常用在C#類上。

另外, [<DllImport("myUnmanagedDLL.dll")>]無效C# - 這是F#語法。 C#對屬性使用[Attribute] (VB.Net使用<Attribute> )。

如果它在F#中有用,則程序集級別屬性通常應用於空的do塊:

[<assembly: AssemblyTitle("MyProject")>]
do ()

我認為你把C#與VB.NET語法混淆了

在VB.NET中它是<DllImport("myUnmanagedDLL.dll")>而在C#中它是[DllImport("myUnmanagedDLL.dll")]而沒有大於或小於符號。

第二個是程序集屬性,它用於將屬性應用於整個程序集,而不僅僅是一個特定的類,方法或屬性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM