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