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

原创 2006年05月21日 13:08:00
学习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_;
}

C#之静态函数的使用

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace whil...
  • riyuedangkong1
  • riyuedangkong1
  • 2016年08月28日 16:15
  • 1018

静态Static(C#)

静态可以修饰字段,属性,方法,构造函数,类。 1.静态字段(与之相对的是实例字段,也可以成为非静态字段) C#中没有全局变量和全局函数的说法,如果找相之于等价的就可以认为是静态字段和静态方法了。 类中...
  • u010792238
  • u010792238
  • 2015年11月10日 23:19
  • 1225

C#中的静态函数,如何操作Form中的控件?

1.第一个问题,关于,回调函数是否必须为静态函数或者全局函数?2.第二个问题,静态函数,如何操作Form中的控件? public static Form1 form1; public Form1()...
  • nanfeiyannan
  • nanfeiyannan
  • 2014年12月22日 09:41
  • 5028

C语言的静态变量声明static

static声明外部变量 static的作用域限定为被编译源文件的剩余部分,不会和同一程序中的其他文件中的相同的名字相冲突。 static声明函数 除了对该函数声明所在的文件可见外,其他文件都无法访问...
  • milkcu
  • milkcu
  • 2013年04月14日 00:29
  • 1369

C语言 静态变量static的用法

static有两个作用 第一个作用: 修饰变量,变量又分为局部和全局变量,但他们都存在内存的静态区               静态全局变量,作用于仅限于变量被定义的文件。其他文件即使用e...
  • Z_hehe
  • Z_hehe
  • 2017年03月15日 09:55
  • 1832

C语言函数内static关键字详解

static关键字有两类使用:函数外使用和和函数内使用,其中函数外使用主要用来限制被修饰的函数或变量作用域为本文件,没什么可多说的,下面重点说一下static关键字在函数体内的用法....
  • liutgnukernel
  • liutgnukernel
  • 2016年05月21日 20:29
  • 1376

img加载本地图片问题

img,src在指向本地图片资源时,页面提示资源不可用,如file://c:1.png" /> ,google后,原来是出于安全性的考虑,所以要想加载本地图片资源,只能先上传至服务器,然后src指向服...
  • u010047370
  • u010047370
  • 2016年06月08日 09:23
  • 227

c中的static变量

当一个进程的全局变量被声明为static之后,它的中文名叫静态全局变量。静态全局变量和其他的全局变量的存储地点并没有区别,但是它只在定义它的源文件内有效,其他源文件无法访问它。static局部变量中文...
  • weiqianghu
  • weiqianghu
  • 2015年06月27日 14:53
  • 564

"static" in C

写这篇短文主要是两个原因,
  • u012520030
  • u012520030
  • 2014年06月26日 21:35
  • 326

不允许声明无类型的***

今天新建了一个.hpp 文件,定义了一个类。编译时提示 “不允许声明无类型的 (类名) 1. 修改名字重新编译,还是有错误。 2. 查看文件,无特殊符号。 3. 将该类注释,将代码复制到下面。编...
  • wuwenjunwwj
  • wuwenjunwwj
  • 2012年10月08日 15:44
  • 596
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#不允许声明函数体内的static变量,为何?
举报原因:
原因补充:

(最多只允许输入30个字)