C#中的静态构造函数
我试图使用如下的静态构造函数:
public static DataManager()
{
LastInfoID = 1;
}
并收到此错误:
静态构造函数不允许访问修饰符
我想知道我的问题是什么。
没有找到相关结果
已邀请:
5 个回复
盟犯涩沟都
这是因为它永远不会被显式调用(除非可能通过反射) - 但是由运行时调用;访问级别将毫无意义。
吠强祷豪硅
字段或属性在类中未声明为静态,您只能从静态构造函数中访问静态成员。同时从声明中删除
关键字:
逝媳蘑贩茄
。静态构造函数的语法是:
届甸衬丝蚕
因为您正在调用默认构造函数(前提是您没有定义无参数构造函数)。换句话说,必须将非静态构造函数定义为public的原因是因为您需要显式调用它。如果内存对我很好,C#将无法编译试图调用未定义为public的(通过malloc)构造函数的代码。 静态类中的构造函数用于“设置”目的。例如,我可以有一个静态类,它应该是我的代码和我不断保存并从中读取数据的文件之间的桥梁。我可以定义一个构造函数,在创建对象时,它将确保文件存在,如果不存在则创建默认文件(在移植到其他服务器的Web系统中非常有用)。
哭木算