C#は関数内のstatic変数を宣言することは許されません.なぜですか.
学習C#中......
今日発見して、C#は意外にも関数の体内でstatic変数を宣言することを支持しないで、これは本当にとても奇妙で、まさか1つのstatic変数のは必ず他の人に知らせなければなりませんか(少なくともクラスの他のメンバーに知られます)?
下のC#とC++の比較では、明らかにC++はこの点で合理的で、uniqueIDという増加し続け、唯一のIDを制御する重要な変数は、クラスの他のメンバーによって無意識に破壊されない.なぜC#がこのような「関数体内部のstatic変数」を許さないのか、狂汗......
今日発見して、C#は意外にも関数の体内でstatic変数を宣言することを支持しないで、これは本当にとても奇妙で、まさか1つのstatic変数のは必ず他の人に知らせなければなりませんか(少なくともクラスの他のメンバーに知られます)?
下のC#とC++の比較では、明らかにC++はこの点で合理的で、uniqueIDという増加し続け、唯一のIDを制御する重要な変数は、クラスの他のメンバーによって無意識に破壊されない.なぜC#がこのような「関数体内部のstatic変数」を許さないのか、狂汗......
// C# ,uniqueID_
// Foo()
class Foo {
public Foo() {
id_ = ++ uniqueID_;
}
private static int uniqueID_ = 0;
private int id_;
};
// C++ ,uniqueID
// , 。
class Foo {
public:
Foo() {
static int uniqueID = 0;
id_ = ++ uniqueID;
}
private:
int id_;
}