[問題] static的用法

看板C_Sharp作者 (青)時間16年前 (2009/09/03 12:43), 編輯推噓1(1015)
留言16則, 4人參與, 最新討論串1/1
想請教各位一個問題 在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

09/03 13:22, , 1F
試試看整個class定為static (public static class ...)
09/03 13:22, 1F

09/03 13:36, , 2F
沒辦法這樣做..
09/03 13:36, 2F

09/03 13:37, , 3F
為什麼呢?你的int staticFunc()所屬的class加阿?
09/03 13:37, 3F

09/03 13:38, , 4F
喔,我上面的例子是C++的
09/03 13:38, 4F

09/03 13:39, , 5F
我是C#中一個button click的事件中寫動作
09/03 13:39, 5F

09/03 13:39, , 6F
我是要在一個button_click事件中,寫一個static變數
09/03 13:39, 6F

09/03 13:40, , 7F
來紀錄button目前處於哪個狀態,下次觸發後,根據狀態
09/03 13:40, 7F

09/03 13:40, , 8F
轉換另一個狀態
09/03 13:40, 8F

09/03 13:40, , 9F
請問,有辦法在button_click中做static的宣告嗎?
09/03 13:40, 9F

09/03 13:58, , 10F
button_click(event handler)不能做static宣告
09/03 13:58, 10F

09/03 14:00, , 11F
只能提到最高的
09/03 14:00, 11F

09/03 14:07, , 12F
原來是這樣,那我知道了,看來這是唯一的解決方式
09/03 14:07, 12F

09/03 14:07, , 13F
謝謝r大
09/03 14:07, 13F

09/03 22:57, , 14F
區域變數不能是static變數,所以可以提升到成員變數。
09/03 22:57, 14F

09/05 23:36, , 15F
這是C#中新加入的規定嗎?
09/05 23:36, 15F

09/15 16:40, , 16F
區域變數用完即棄,不適合static長存共寫的理念,故移除為佳
09/15 16:40, 16F
文章代碼(AID): #1AdqcFz_ (C_Sharp)