C#は関数内のstatic変数を宣言することは許されません.なぜですか.


学習C#中......
今日発見して、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_;
}