2015-11-27 95 views
2

與標題非常相似,使用和屬性<SomeName()><SomeNameAttribute()>之間有什麼區別,其中SomeName在兩種情況下都是相同的嗎?<SomeName()>和VB.NET中的<SomeNameAttribute()>之間的區別

例如在Newtonsoft的Json.NET中有<JsonConverterAttribute()><JsonConverter()>可以應用於成員。根據對象瀏覽器都解析到相同的JsonConverterAttribute類。這是特定的屬性或框架的特性,還是這適用於所有VB.NET屬性?

+0

沒有區別。一個簡單的技巧,使屬性類名非常具體,但屬性使用非常簡短。一個程序員發明的技巧,而不是一個委員會。 –

回答

3

沒有區別。從MSDN

按照慣例,所有的屬性名的「屬性」二字來 結束從.NET Framework中的其他項目區別開來。但是, 在使用 代碼中的屬性時不需要指定屬性後綴。

所以,寫成MyFooAttributeAttribute可以作爲MyFooMyFooAttribute,並會顯示在對象瀏覽器相同的條目。此值有助於防止名稱空間中的「名稱扭曲」:Newtonsoft具有JsonConverter類型,但也可以使用與Attribute基本相同的名稱。

反之亦然(至少在VS2012中)。如果使用「簡易格式爲」自定義屬性:

Public Class MyFoo 
    Inherits Attribute 

屬性是合法的和可用的(由於其繼承),但MyFooAttribute不會在代碼中承認也不對象瀏覽器找到。因此對於自定義屬性,支付將該類命名爲MyFooAttribute

+2

......以及其推論:爲了保持一致,請始終將您的類命名爲'FooAttribute',並且始終*將它們用作''。 –

相關問題