不确定如何解释这种情况,因此我将在使用示例的同时尽力而为。
所以我有一个主班,
Main.cs
//Code
class Main {
public Run() {
while(true)
{
Minor start = new Minor();
start.Run();
}
}
}
次要课程
Minor.cs
//Code
class Minor {
public Run() {
Test.hi += 1;
Console.WriteLine(Test.hi);
}
}
测试类,
Test.cs
//Code
class Test {
public int hi = 0;
}
在运行上面的示例时,每次循环都会增加Time.cs中的整数。因此输出将是3次。
1
2
3
但是如果我将public int hi = 0
放在Minor.cs里面,如下所示
Minor.cs
//Code
class Minor {
public int hi = 0;
public Run() {
hi += 1;
Console.WriteLine(Test.hi);
}
}
由于每个循环都会创建一个新的Minor实例,因此输出始终为1
。现在,我知道我可以简单地在{{1 }},但我有多个在循环期间修改的变量/整数/字符串,但是在下一个循环中需要为默认值。
是否可以通过编程方式将所有类以编程方式重置为Test.cs
以外的默认状态,或者可以将所有其他Minor.cs
继承到Main.cs
中,以便在{ {1}}被创建了,它们的新实例也是吗?
答案 0 :(得分:0)
我可能会误解您的约束,但是如果您想重置一个类中的所有变量,我会考虑向该类添加一个Reset()
方法,该方法就是这样:将所有属性设置为默认值一对一。
答案 1 :(得分:0)
您自己说过,解决方案是创建一个新的Test对象。
public Run() {
var test = new Test():
Console.WriteLine(Test.hi);// I'm assuming this should be 'test.hi'
}