- 分享
- 0
- 人气
- 0
- 主题
- 62
- 帖子
- 6367
- UID
- 51295
- 积分
- 3715
- 阅读权限
- 21
- 注册时间
- 2006-11-21
- 最后登录
- 2022-1-19
- 在线时间
- 3699 小时
|
本帖最后由 goodhermit95 于 2010-4-8 02:38 PM 编辑
回复 20# 宅男-兜着走
我知道了,比如說...(goodday老大教的)
- if(progressbar1.value = progressbar1.maxvalue){progressbar1.value = progressbar1.minimum;}
复制代码 看起來上面這個比較長
如果你是這樣
- if(progressbar1.value = 100){progressbar1.value = 0;}
复制代码 第一個code,如果你改變progressbar1.maxvalue和minimum就不會有問題,但是第二個code就有問題了,而且如果你很久沒有動這個project你就會亂掉..
另外一種,
- private void button1_Click(object sender,eventargs e)
- {
- button1.text = "lol";
- }
复制代码
上面這個code,當時goodday說sender是這個void元件的properties,我就奇怪爲什麽sender只有.tostring和equalto,其實上面的寫法很奇怪,因為button1_click又用button1.text =,OOP的話應該是這樣(動物會排泄的原理)
- private void button1_Click(object sender,eventargs e)
- {
- (button)sender.text = "lol";
- }
复制代码 又來,比較長,不過打很多code的話會節省很多,這個是把sender(動物)轉成button(人),也就是每個元件都有text(如果沒有text就exception,也就是特別的動物)
好了,什麽叫做打比較多code?
比如說一個form裏面有100個button,我要按下的button.enabled = false,按下的而已,就要這樣
- //把全部的Click event 放在buttons_click
- private void buttons_click(object sender,eventargs e)
- {
- (button)sender.enabled = false;
- }
复制代码 如果你不這樣的話,
- private void button1_click(object sender,eventargs e)
- {
- button1.enabled = false;
- }
- private void button2.........
复制代码
打死你
還有一種我會的就是(也是goodday老大教的,話說當時他講我完全聽不懂有什麽用途……寫久了才發現到它的用途)
如果現在有menu strip,notify icon,context menu strip,button等等的功能都是做某某很長的code,如果我寫四個的話
- private void xxxxxmenustrip_click(object......)
- {
- //blahblahblah
- }
- private void xxxxxnotifyicon_press(object.....)
- {
- ///blahblahblah
- }
- //以此類推,做四次
复制代码 此時,如果你code有問題的時候,你就要改四次,而且很長,那麼很麻煩,你應該開多一個void然後這些就跑那個function
- private void xxxxxmenustrip_click(object...)
- {
- YOURFUNCTION();
- }
- //其他三個不重複了
- private void YOURFUNCTION()
- {
- //在這裡寫你的code有問題的時候改這裡就可以了
- }
复制代码 說到這裡,還有一個東西,如果YOURFUNCTION裏面需要menustrip等其他元件的某某資料(如他的text)
- private void xxxxmenustrip_click(...)
- {
- YOURFUNCTION();
- YOURFUNCTION_TEXT = (menustrip)sender.text;
- }
- string YOURFUNCTION_TEXT;
- private void YOURFUNCTION()
- {
- string aaa = yourfunction_text;
- }
复制代码 這就太麻煩了...
- private void xxxmenustrip_click(...)
- {
- YOURFUNCTION((menustrip)sender.text);
- }
- private void YOURFUNCTION(string text)
- {
- string aaa = text;
- }
复制代码
這樣就簡單多了,可說是效率吧…… |
|