C# 静态变量未立即初始化

C# 静态变量未立即初始化,c#,.net,winforms,C#,.net,Winforms,并尝试: public class variables { public static int edit{ get;set; } } 使用表单 public static int edit = 0; public static int edit { get; set; } public static int edits { get { return edit; } } 在所有情况下,该消息至少返回了一次调用。我需要知道如何使值作为第一步初始化。我必须使用多个变量,这些变量将数据

并尝试:

public class variables {
    public static int edit{ get;set; }
}
使用表单

public static int edit = 0;

public static int edit { get; set; } 

public static int edits { get { return edit; } }

在所有情况下,该消息至少返回了一次调用。我需要知道如何使值作为第一步初始化。我必须使用多个变量,这些变量将数据从一种形式保存到另一种形式,并在加载中使用。

确保您的类
变量
是静态的,而不仅仅是字段/属性:

form:form1 {

    // Changing the value of variable to 1
    private void Form1_Load(object sender, EventArgs e) {
        variables.edit=1;
    }

    // Calling the new form where I'll use its value
    private void Button_Click(object sender, EventArgs e){
        form2 A=new form2();
        A.Show();
    }
}    

form:form2{

    // Showing the value of the variable in a message box
    private void Form2_Load(object sender, EventArgs e){
         MessageBox.show(variables.edit.ToSting());
    } 
}
静态类的另一个问题来源是在设置另一个字段/属性时使用一个字段/属性:

public static class variables {
    public static int edit = 0;
}
好的,除非在静态构造函数中设置值,否则您无法确定静态构造函数在运行时将首先设置哪个字段/属性,如下所示:

public static class variables {
    public static int someValue = 2;
    public static int other = someValue + 3;
}

如果您在一个真正的非静态类中声明静态字段/属性,请检查上述问题,如果没有其他任何东西在其他位置更改静态字段/属性,即使在非静态类中也是如此。

确保您的类
变量
是静态的,而不仅仅是字段/属性:

form:form1 {

    // Changing the value of variable to 1
    private void Form1_Load(object sender, EventArgs e) {
        variables.edit=1;
    }

    // Calling the new form where I'll use its value
    private void Button_Click(object sender, EventArgs e){
        form2 A=new form2();
        A.Show();
    }
}    

form:form2{

    // Showing the value of the variable in a message box
    private void Form2_Load(object sender, EventArgs e){
         MessageBox.show(variables.edit.ToSting());
    } 
}
静态类的另一个问题来源是在设置另一个字段/属性时使用一个字段/属性:

public static class variables {
    public static int edit = 0;
}
好的,除非在静态构造函数中设置值,否则您无法确定静态构造函数在运行时将首先设置哪个字段/属性,如下所示:

public static class variables {
    public static int someValue = 2;
    public static int other = someValue + 3;
}

如果您在一个真正的非静态类中声明静态字段/属性,请检查上面的问题,如果没有其他任何东西在其他地方更改静态字段/属性,即使在非静态类中也是如此。

感谢您让我知道这里只在英语!!我真的需要帮助,我不知道为什么在加载后初始化变量,但我需要加载!我仍然不清楚你在问什么,但我会重新提出这个问题,以防其他人比我更了解这个问题。我是未来,你们可能想向以英语为母语的人寻求帮助,或者在问你们的问题。很抱歉,我真的不明白你们的问题在哪里,你们的问题是什么。我在最后一个表单中更改了静态变量的值,但当我称它为另一个表单的负载时,它返回时并没有值。如果我再次关闭并打开表单,它会工作!但是我首先需要它:
静态类变量{public static int edits;}
?谢谢你让我知道这里只有英文版!!我真的需要帮助,我不知道为什么在加载后初始化变量,但我需要加载!我仍然不清楚你在问什么,但我会重新提出这个问题,以防其他人比我更了解这个问题。我是未来,你们可能想向以英语为母语的人寻求帮助,或者在问你们的问题。很抱歉,我真的不明白你们的问题在哪里,你们的问题是什么。我在最后一个表单中更改了静态变量的值,但当我称它为另一个表单的负载时,它返回时并没有值。如果我再次关闭并打开表单,它会工作!但是我首先需要它:
静态类变量{publicstaticintedits;}