可能重复:
静态属性的默认值
我可以为类的正常默认属性分配默认值。但我无法为类的静态默认属性分配默认值,如下所示:-
public class AppInstance
{
[DefaultValue(25)]
public static int AppType { get; set; }
}
当我调用 AppInstance.AppType 时,它总是返回 0 而不是 25。为什么?如何在不使用私有变量声明的情况下解决它?
DefaultValueAttribute
唯一告诉WinForms
设计者哪个值是窗体或控件属性的默认值。如果该属性有另一个值,该值将在属性窗口中以粗体显示。但它实际上不会设置值。
您必须在静态构造函数中为其赋值
static MyClass()
{
AppType = 25;
}
您可以使用静态构造函数。在创建第一个实例或引用任何静态成员之前自动调用它来初始化类。
public class AppInstance
{
public static int AppType { get; set; }
static AppInstance()
{
AppType = 25;
}
}
get; set;
我看不到在这种情况下使用创建静态成员的用途。也许别人可以?
所以,我可能会这样做:
public class AppInstance
{
public static int AppType = 25;
}