为什么静态构造函数没有任何参数

Sim*_*ons 21 .net c# oop static-methods

根据MSDN:

静态构造函数不接受访问修饰符或具有参数.

在创建第一个实例或引用任何静态成员之前,会自动调用静态构造函数来初始化类.

无法直接调用静态构造函数.

任何人都可以解释为什么静态构造函数不能有参数.

Mot*_*tti 25

正如MSDN所说,在创建第一个实例之前,会自动调用静态构造函数来初始化类.因此,您无法发送任何参数.

如果CLR必须调用静态构造函数,它将如何知道传递它的参数?


Jon*_*eet 8

静态构造函数作为类型初始化的一部分自动调用.它们没有被明确调用...所以你无法提供任何与构造函数参数相对应的参数.如果您永远不能为参数指定任何值,为什么还要允许参数?


dle*_*lev 8

你如何控制传递给这样一个构造函数的参数,因为它是第一次引用类时运行时自动调用的,并且不能直接调用?

从理论上讲,这样的语法本来是可以设计和实现的,但是那时需要直接调用,因为现在一个简单的类引用不会知道要传递给它的参数.静态构造函数的要点是在使用类型之前执行类型级初始化.这样做会自动确保这种情况,而直接调用会留下足够的错误空间.