可以在静态方法中初始化静态变量吗?

Jyi*_*ina -1 c#

可以在方法中初始化静态变量吗?以下代码是否有效?谢谢!

internal static class Common
{

    internal static int TimeOut;
    internal static string Name;


    internal static void Initialize()
    {
        TimeOut = Config.Read("timeout");
        Name = Config.Read("Name");
    }
}
Run Code Online (Sandbox Code Playgroud)

Fis*_*rdo 6

简短的回答是肯定的.

如果您确实想要初始化静态变量(例如,在使用静态类之前在运行时设置它们的值),请使用静态构造函数:

internal static class Common
{
    internal static int TimeOut;
    internal static string Name;

    static Common()
    {
        TimeOut = Config.Read("timeout");
        Name = Config.Read("Name");
    }
}
Run Code Online (Sandbox Code Playgroud)

注意,静态构造函数没有访问修饰符,必须是无参数.

有关静态构造函数的进一步阅读,请参阅此MSDN文章.