C#不允许声明函数体内的static变量,为何?

王朝c#·作者佚名  2007-01-19
窄屏简体版  字體: |||超大  

学习C#中……

今天发现,C#居然不支持在函数体内声明static变量,这真的是很古怪,难道一个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_;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航