C#不允许声明函数体内的static变量,为何?
2006-05-21 13:08
183 查看
学习C#中……
今天发现,C#居然不支持在函数体内声明static变量,这真的是很古怪,难道一个static变量的就一定要让别人知道吗(至少会被类的其他成员知晓)?
下边的C#和C++的比较,很明显,C++在这一点上要合理很多,uniqueID这个不断递增、控制着唯一ID的重要变量,永远不会被类里的其他成员无意破坏掉,不知道为什么C#不允许这种“函数体内部的static变量“,狂汗……
今天发现,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_; }
相关文章推荐
- 递归:从尾到头输出链表& 从尾到头输出一个字符串 & 定义一个函数求字符串的长度,要求该函数体内不能声明任何变量
- 用static声明的函数和变量小结
- 用static声明的函数和变量小结
- 用static声明的函数和变量小结
- 用static声明的函数和变量小结
- 定义一个函数求字符串的长度,要求该函数体内不能声明任何变量
- 在一个类的函数中声明static变量是个啥
- 定义一个函数求字符串的长度,要求该函数体内不能声明任何变量
- 定义一个函数求字符串的长度,要求该函数体内不能声明任何变量
- 定义一个函数求字符串的长度,要求该函数体内不能声明任何变量
- 用static声明的函数和变量小结
- C++中重构函数声明定义与static变量使用方法
- 用static声明的函数和变量小结
- static用在函数里面,声明一次变量后,如果再次调用这个函数将会在初始值延续,如$num这里将累加。
- c语言变量和函数声明的修饰符static,extern,#define,const
- Java接口中的成员变量为什么必须声明为public static final?
- static和extern对变量和函数的作用
- static作用之修饰函数、局部变量、全局变量
- static作用(修饰函数、局部变量、全局变量) C/C++中static关键字详解
- 18.static与函数、static与变量