亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

一點C#代碼的使用心得

2019-11-18 16:51:46
字體:
來源:轉載
供稿:網友

好久沒有寫技術文章了,今天就寫一點點關于C#的使用心得吧。

1、代碼問題:
以前我總是這樣寫代碼:

//m_isSomeEvent:bool
if(m_isSomeEvent){
 m_isSomeEvent = false;
}else{
 m_isSomeEvent = true;
}
后來這樣寫:

m_isSomeEvent = m_isSomeEvent?false:true;
再后來這樣寫:

m_isSomeEvent = !m_isSomeEvent;
類似的有:

if(this.m_button.Text==i_someString){
 this.m_button.Enabled = true;
}else{
 this.m_button.Enabled = false;
}
后來就寫成:

this.m_button.Enabled = this.m_button.Text == i_someString;
有什么區別嗎?沒有,只能說我是越來越懶了。

字符串問題:
以前總是這樣寫:

string m_path = "c://test//"+"MyFolder"+"//someFile.dat";
后來會這樣寫:

string m_path = string.Format("{0}//{1}//{2}",i_drive,i_path,i_file);
再后來這樣寫:

string m_path = Path.Combine(Path.Combine(i_drive,i_path),i_file);
雖然有點麻煩,但比起因為路徑出錯而造成的麻煩,這算不了什么。
還有就是,以前這樣寫:

string m_filePath = "./myFile.dat"; //在程序正在運行的目錄里取文件。
后來這樣寫:

string m_filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"myFile.dat");
理由就不用說了,安全第一。

還有一個就是:

string m_fullPath = "c://test1//test2//file.dat";
//Some code withe the path to create the file.
后來總要這樣:

string m_fullPath = "c://test1//test2//file.dat";
if(!Directory.Exists(Path.GetDirectoryName(m_fullPath)))
{
 Directory.CreateDirectory(Path.GetDirectoryName(m_fullPath));
}
//Some code withe the path to create the file.
再后來:

string m_fullPath = "c://test1//test2//file.dat";
if(!Directory.Exists(Path.GetDirectoryName(m_fullPath)))
{
 try{
  Directory.CreateDirectory(Path.GetDirectoryName(m_fullPath));
 }
 catch(Exception ex)
 {
  MessageBox.Show(this,"Error! Object folder "+m_fullPath+" does't exist. And cann't create this folder. Message:"+ex.Message);
 }
}
//Some code withe the path to create the file.
代碼雖然越來越多,但安全性卻是越來越高??傊a能省的地方就該省,不能省的,一個也不能少。

還有這樣的問題:
以前這樣寫函數:

public void SomeFunction(object i_someObject){
//
}
后來一般情況我都會先選擇這樣的代碼:

public void SomeFunction(ref object i_someObject){
//
}

還有一個小問題,就是我喜歡在所有的成員使用上加上this,因為這樣可以直接知道它是成員還是函數內的局部變量。

2、再討論一個try-catch結結構:
以前這樣寫:
模塊A中的某函數:

public object SomeFunction(ref object i_someParameter){
 SomeObject m_tempObject = new SomeObject(); //m_tempObect need release after use it.
 object m_result = null;
 //Some code with SomeObject m_tempObject;
 m_tempObject.Dispose();
 return m_result;
}//模塊B中的調用:
object m_myObject = SomeFunction(ref m_somePar);
后來遇到問題,在調用時不得不這樣:

object m_myObject = null;
try{
 m_myObject  = SomeFunction(ref m_somePar);
}catch(Exception ex){
 //Some code;
}
然而,這樣問題就來了,當調用SomeFunction出現異常后,SomeFunction中的m_tempObject對象根本沒有機會調用Dispose來釋放資源。
于是修改代碼為:
模塊A中的函數:

public object SomeFunction(ref object i_someParameter){
 SomeObject m_tempObject = new SomeObject(); //m_tempObect need release after use it.
 object m_result = null;
 try{
  //Some code with SomeObject m_tempObject;
 }catch(Exception ex){
  m_result = null;
  //some code
 }
 finally{
  m_tempObject.Dispose();
 }
 return m_result;
}
模塊B中的調用:

object m_myObject = SomeFunction(ref m_somePar);
if(m_myObject ==null){
 //some code
}else{
 //some code
}
然而這樣還是有問題,就是你不知道調用模塊A中的函數時,當返回null后,A中到底出現了什么問題。
也就是說,這里我想讓B模塊來Catch異常,而不想讓A模塊來處理。
簡單的辦法是在A模塊的函數中catch到異常后,重新再拋出一個新異常:

public object SomeFunction(ref object i_someParameter){
 SomeObject m_tempObject = new SomeObject(); //m_tempObect need release after use it.
 object m_result = null;
 try{
  //Some code with SomeObject m_tempObject;
 }catch(Exception ex){
  m_result = null;
  //some code
  throw new Exception("Some message");
 }
 finally{
  m_tempObject.Dispose();
 }
 return m_result;
}
這樣B模塊中可以知道A中發生了什么事情,從而進一步處理。然而這樣的問題是:
系統性能下降和異常類的改變。當然,如果直接拋出原來的異常也行,但那樣沒有必要,后來這樣改代碼:
模塊A的函數:

public object SomeFunction(ref object i_someParameter){
 using(SomeObject m_tempObject = new SomeObject()){
  object m_result = null;
  //some code with m_tempObject;
  return m_result;
 }
}
//模塊B的調用:
object m_myObject = null;
try{
 m_myObject  = SomeFunction(ref m_somePar);
}catch(Exception ex){
 //Some code;
}
雖然B中還是用到了try-catch結構,但意義是不一樣的。如果A是不可知模塊,例如你是A模塊提供方,那么這樣的方法給你的用戶提供了很好的靈活性。
如果你是A模塊的使用方,那么你完全可以自己控制try-catch結構。

好了,先就這一點點心得。有時間再寫一些。
http://www.49028c.com/WuCountry/archive/2006/11/24/570719.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
狠狠久久五月精品中文字幕| 最近2019中文免费高清视频观看www99| 久久亚洲精品中文字幕冲田杏梨| 日韩在线高清视频| 中文字幕视频在线免费欧美日韩综合在线看| 国产欧美一区二区三区久久| 欧美日韩免费在线观看| 日本成人在线视频网址| 欧美精品在线极品| 国产精品久久久久久av福利| 91免费视频国产| 中文字幕欧美精品日韩中文字幕| 久久精品视频播放| 欧美日韩在线第一页| 欧美激情亚洲另类| 亚洲激情在线视频| 国产精品色婷婷视频| 日韩美女免费观看| 亚洲第一网中文字幕| 欧美黄色片免费观看| 日韩美女福利视频| 国产精品久久久一区| 国产成人精品综合| 亚洲色图50p| 亚洲免费人成在线视频观看| 欧美成人全部免费| 午夜精品一区二区三区在线视频| 一区二区中文字幕| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品亚洲欧美导航| 久久夜色精品亚洲噜噜国产mv| 欧美亚洲国产成人精品| 欧美一区二区三区免费观看| 深夜福利国产精品| 精品亚洲aⅴ在线观看| 91在线免费观看网站| 综合136福利视频在线| 91av在线看| 国产成人精品久久二区二区| 国内精久久久久久久久久人| 91精品免费视频| 欧美亚洲国产日韩2020| 国产精品久久久久久久9999| 成人免费淫片视频软件| 日本欧美国产在线| 日韩av免费看| 久久久久久久久久久久久久久久久久av| 久久影院模特热| 色妞久久福利网| 亚洲日韩中文字幕| www.亚洲一区| 国产精品麻豆va在线播放| 亚洲一区二区中文字幕| 精品视频9999| 久久福利视频导航| 亚洲丝袜av一区| 菠萝蜜影院一区二区免费| 97国产精品人人爽人人做| 国内精品国产三级国产在线专| 精品免费在线视频| 久久免费视频网| 国产精品亚洲аv天堂网| 国产精品亚发布| 92看片淫黄大片看国产片| 国产精品日韩久久久久| 精品美女永久免费视频| 91网在线免费观看| 国产精品久久久久av| 久久久在线视频| 欧美成aaa人片在线观看蜜臀| 日韩精品免费综合视频在线播放| 国产精品偷伦视频免费观看国产| 成人亚洲综合色就1024| 最近2019年好看中文字幕视频| 国产精品视频久久久久| 奇米四色中文综合久久| 精品视频久久久久久| 欧美日韩免费在线| 久久久久久久久久久免费| 亚洲a中文字幕| 精品视频一区在线视频| 精品久久久国产精品999| 亚洲一区二区三区xxx视频| 91精品国产综合久久男男| 国产精品xxx视频| 亚洲国产天堂久久综合网| 亚洲最大成人网色| xvideos成人免费中文版| 亚洲护士老师的毛茸茸最新章节| 国产精品video| 欧美xxxx做受欧美.88| 精品视频在线播放| 91国产视频在线播放| 国产在线视频2019最新视频| 欧美性xxxx极品hd满灌| 亚洲男人av在线| 久久精品国产v日韩v亚洲| 日韩免费观看在线观看| 久久久人成影片一区二区三区| 国产精品综合久久久| 国产日韩在线亚洲字幕中文| 欧美性猛交xxxx偷拍洗澡| 福利精品视频在线| 亚洲欧美变态国产另类| 国产一区二区黄| 亚洲色图狂野欧美| 欧美一级淫片丝袜脚交| 国产精品一区二区三区毛片淫片| 国产午夜精品理论片a级探花| 色香阁99久久精品久久久| 亚洲精品国产综合区久久久久久久| 久久久久久久久久久免费精品| 日韩电影在线观看永久视频免费网站| 国产99久久精品一区二区| 欧美专区第一页| 亚洲黄在线观看| 两个人的视频www国产精品| 国产一区二区三区免费视频| 国产精品高清免费在线观看| 亚洲影院高清在线| 欧美极品少妇xxxxx| 欧美人交a欧美精品| 不卡av电影在线观看| 2020久久国产精品| 亚洲精品在线91| 欧美午夜片在线免费观看| 亚洲性视频网站| 亚洲xxxx视频| 国产成人啪精品视频免费网| 91色琪琪电影亚洲精品久久| 亚洲第一区在线观看| 欧美成人午夜免费视在线看片| 欧美日韩精品在线视频| 亚洲精品资源美女情侣酒店| 日本一区二区在线免费播放| 久久久久久亚洲精品中文字幕| 91精品视频在线播放| 欧美电影免费在线观看| 91社区国产高清| 亚洲视频电影图片偷拍一区| 亚洲毛片在线观看| 成人黄色网免费| 91精品国产成人www| 日av在线播放中文不卡| 亚洲视频电影图片偷拍一区| 国产成人在线亚洲欧美| 97色在线观看| 黑丝美女久久久| 日韩电影在线观看免费| 最新亚洲国产精品| 国产精品入口夜色视频大尺度| 欧美大学生性色视频| 欧美麻豆久久久久久中文| 亚洲第一视频在线观看| 日韩欧美国产骚| 97在线精品国自产拍中文| 国产精品久久久久aaaa九色| 亚洲欧美日韩国产中文| 欧美激情二区三区| 欧美重口另类videos人妖| 国产69精品久久久久9| 亚洲欧美在线免费| 国产专区欧美专区| 久久久精品电影|