2010-06-16 51 views
5

可以將屬性應用於c#中的靜態類,方法或屬性?像:在C#中,屬性可以應用於靜態類,方法或屬性嗎?

[MyAttribute] 
public static MyMethods(string str) ... 
+7

似乎是一件容易的事情去嘗試自己....你有沒有嘗試過,失敗? – 2010-06-16 05:35:36

+0

難道不是'[我]'嗎? – Kobi 2010-06-16 05:38:14

+0

我重複Jason Webb的評論:你爲什麼不自己試試這個呢? – abelenky 2010-06-16 05:39:19

回答

6

實際上有兩個問題在這裏

是否有可能在一般屬性應用於類,方法的或屬性?

是屬性可以有效地針對任何這些結構(以及其他許多)

的有效期是一個特定的屬性,這樣做呢?

這取決於具體的屬性。屬性可以控制哪些構造可以通過枚舉來應用,因此將特定屬性應用於特定構造是非法的。

例如,ParamArrayAttribute只能定位參數,而ObsoleteAttribute可以針對幾乎任何東西(除了組件也許有其他的我失蹤)

+0

恭喜100k; p – 2010-06-16 09:49:54

+0

@Marc謝謝!現在爲200 :) – JaredPar 2010-06-16 14:48:13

+0

但是,即使'AttributeTarget'也不能在* static *項上使屬性無效,而在* non-static *項上有效。 – Timwi 2010-09-05 17:23:55

1

是的。大概。試試看。

我想知道爲什麼你會懷疑它。

2

是的,你可以將屬性應用於靜態類,方法,屬性。

例如:

[MyAttribute("hello")] 
     public static string SayHello(string str) 
     { 
     return str; 
     } 
1

是的,它可以被應用。

0

這取決於屬性是否可以應用到一個靜態類。退房AttributeTarget。因此,它是完全合法的,並允許用一個或多個靜態類來修飾屬性。