作者godman362 (青)
看板C_Sharp
标题[问题] static的用法
时间Thu Sep 3 12:43:56 2009
想请教各位一个问题
在C/CPP中,有一种在function中使用static的用法
可以用来纪录该函数中某些变数不因呼叫多次而「洗掉」的用法
大概像是这样:
int staticFunc ()
{
static int i = 0;
return i++;
}
这样的作法,每次呼叫所得到的i都不一样
请问在C#底下可以有类似的作法吗?
因为我在C#中,在一个Button_Click的函数中
想要利用static的技巧,却发现不能这样用
所以想请教各位,除了将它宣告成更高一层的变数之外
有没有更好的办法,还请各位指点一下,谢谢。
--
ˍˍ
如果我手中有酒,希望与你共饮。 ▕羽人▏
如果我手上有刀,希望与你一同抗敌。▕非獍▏
 ̄ ̄
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.118.4.58
1F:→ retsamsu:试试看整个class定为static (public static class ...) 09/03 13:22
2F:→ godman362:没办法这样做.. 09/03 13:36
3F:→ retsamsu:为什麽呢?你的int staticFunc()所属的class加阿? 09/03 13:37
4F:→ godman362:喔,我上面的例子是C++的 09/03 13:38
5F:→ godman362:我是C#中一个button click的事件中写动作 09/03 13:39
6F:→ godman362:我是要在一个button_click事件中,写一个static变数 09/03 13:39
7F:→ godman362:来纪录button目前处於哪个状态,下次触发後,根据状态 09/03 13:40
8F:→ godman362:转换另一个状态 09/03 13:40
9F:→ godman362:请问,有办法在button_click中做static的宣告吗? 09/03 13:40
10F:→ retsamsu:button_click(event handler)不能做static宣告 09/03 13:58
11F:→ retsamsu:只能提到最高的 09/03 14:00
12F:→ godman362:原来是这样,那我知道了,看来这是唯一的解决方式 09/03 14:07
13F:→ godman362:谢谢r大 09/03 14:07
14F:→ fphoenix923:区域变数不能是static变数,所以可以提升到成员变数。 09/03 22:57
15F:→ godman362:这是C#中新加入的规定吗? 09/05 23:36
16F:推 tomex:区域变数用完即弃,不适合static长存共写的理念,故移除为佳 09/15 16:40