C# インスタンスについて
C#にて、インスタンスについてご教授をお願いいたします。。
ソースファイルは、program.cs と Class1.cs の二つあります。
program.csがメインとなります。
以下に例えのプログラムを示します。
将来的に、プログラムは常時起動し、何か信号を受信したら、出力し、出力したらリセットはせず、待機状態にします。また、信号が来たら・・・の繰り返しです。
出力の期待値は最終的に a=4 です。
どの信号にも a=4 となるようにしたいです。
考えでは、信号がくるたびにclass1をnewし、Global.Cntが初期化された状態で使用されると思っています。
しかし、初期化のされている様子は見当たらなく、ご質問いたしました。
初歩的なことでのご質問お許しください。
順々に信号がくるのを模擬したプログラムです。
program.cs↓↓
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 2; i++) //2回の信号が順々にきた
{
int a = 1;
Class1 class1 = new Class1();
a = class1.A(a);
Console.WriteLine(a);
}
}
}
Class1.cs↓↓
class Class1
{
public static class GlobalV
{
public static int Cnt = 0;
}
public int A(int a)
{
int ans = 0;
GlobalV.Cnt++;
ans = B(a);
return ans;
}
public int B(int b)
{
int c = 2;
b = GlobalV.Cnt + c + b;
return b;
}
}
続けてで申し訳ないのですが、もし、A信号の処理をしている最中に、
B信号が来た場合、新たにclass1がインスタンスされた場合、A信号で処理していたclass1は併合もしくは消えてしまうのでしょうか。
同時に来た時は・・・
長文、分かりにくい質問で申し訳ありませんが、ご教授下さると幸いです。よろしくお願いいたします。