2

可能重复:
静态属性的默认值

我可以为类的正常默认属性分配默认值。但我无法为类的静态默认属性分配默认值,如下所示:-

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

当我调用 AppInstance.AppType 时,它​​总是返回 0 而不是 25。为什么?如何在不使用私有变量声明的情况下解决它?

4

3 回答 3

5

DefaultValueAttribute唯一告诉WinForms设计者哪个值是窗体或控件属性的默认值。如果该属性有另一个值,该值将在属性窗口中以粗体显示。但它实际上不会设置值。

您必须在静态构造函数中为其赋值

static MyClass()
{
    AppType = 25;
}
于 2012-04-25T14:10:35.097 回答
2

您可以使用静态构造函数。在创建第一个实例或引用任何静态成员之前自动调用它来初始化类。

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

    static AppInstance()
    {
        AppType = 25;
    }
}
于 2012-04-25T14:09:24.793 回答
0

get; set;我看不到在这种情况下使用创建静态成员的用途。也许别人可以?

所以,我可能会这样做:

public class AppInstance
{
    public static int AppType = 25;
}
于 2012-04-25T14:11:47.817 回答