2012-04-25 134 views
2

可能重複:
default value for a static property如何在C#類的靜態默認屬性分配默認值?

我能夠一類的正常的默認屬性分配默認值。 但我不能爲一類像下面的靜態默認屬性分配默認值: -

public class AppInstance 
{ 
    [DefaultValue(25)] 
    public static int AppType { get; set; } 
} 

當我打電話AppInstance.AppType,它總是返回0,而不是25麼?我如何解決它而不使用私有變量聲明?

+1

指定它在[靜態]構造函數。 – Servy 2012-04-25 14:08:25

+0

http://stackoverflow.com/questions/2596344/default-value-for-a-static-property – LaGrandMere 2012-04-25 14:09:11

+3

默認值是可視化組件的屬性,由Visual Studio設計 – 2012-04-25 14:09:12

回答

5

DefaultValueAttribute的僅告訴WinForms設計者哪個值的形式的或控制的一個屬性的默認值。如果屬性爲其他值,該值將出現在屬性窗口大膽。但它實際上不會設定價值。

你必須給它分配一個值在靜態構造函數

static MyClass() 
{ 
    AppType = 25; 
} 
2

您可以使用一個靜態構造函數。它在創建第一個實例或引用任何靜態成員之前自動調用以初始化類。

public class AppInstance 
{ 
    public static int AppType { get; set; } 

    static AppInstance() 
    { 
     AppType = 25; 
    } 
} 
+0

爲了誰downvoted這通常使用的,能告訴我出了什麼問題與我的答案? – 2012-04-25 14:20:34

+0

它不作爲的問題與使用默認值的屬性,這是真的混淆OP評論。 – Servy 2012-04-25 14:38:38

0

我沒有看到一個靜態成員的使用,以在這種情況下使用get; set;創建。也許別人可以?

所以,我可能只是這樣做:

public class AppInstance 
{ 
    public static int AppType = 25; 
} 
+0

呃,由downvote驅動。請說明。 – 2012-04-25 16:10:29