看板 C_Sharp 關於我們 聯絡資訊
想請教各位一個問題 在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
retsamsu:試試看整個class定為static (public static class ...) 09/03 13:22
godman362:沒辦法這樣做.. 09/03 13:36
retsamsu:為什麼呢?你的int staticFunc()所屬的class加阿? 09/03 13:37
godman362:喔,我上面的例子是C++的 09/03 13:38
godman362:我是C#中一個button click的事件中寫動作 09/03 13:39
godman362:我是要在一個button_click事件中,寫一個static變數 09/03 13:39
godman362:來紀錄button目前處於哪個狀態,下次觸發後,根據狀態 09/03 13:40
godman362:轉換另一個狀態 09/03 13:40
godman362:請問,有辦法在button_click中做static的宣告嗎? 09/03 13:40
retsamsu:button_click(event handler)不能做static宣告 09/03 13:58
retsamsu:只能提到最高的 09/03 14:00
godman362:原來是這樣,那我知道了,看來這是唯一的解決方式 09/03 14:07
godman362:謝謝r大 09/03 14:07
fphoenix923:區域變數不能是static變數,所以可以提升到成員變數。 09/03 22:57
godman362:這是C#中新加入的規定嗎? 09/05 23:36
tomex:區域變數用完即棄,不適合static長存共寫的理念,故移除為佳 09/15 16:40