C#編程入門的八大禁忌
作為微軟.NET平臺的“一等公民”,C#是大家必須學習的。那么在C#編程入門時,我們必定要走很多彎路,這里介紹的一些注意事項,是為了避免犯不必要的錯誤。
下面是8個C#編程入門時的注意事項是給初學者的,可能你知道,也可能你不知道,不過這些都是一些可能會讓人疏忽的地方,還是要注意一下這些C#編程入門的要求。
1.使用String變量:
考慮有下面的一個程序想判斷一下字符串是否有內(nèi)容。
- view sourceprint?
- if (someString.Length > 0)
- {
- // … }
但是,這個字符串對象很可能是個空對象,所以,最好先判斷一下null
- view sourceprint?
- if (!String.IsNullOrEmpty(someString) && someString.Length > 0)
- {
- // 是不是更好一些?
- }
2.字符器連接
- view sourceprint?1.string s = “dev”;
- s += “-”;
- s += “the”;
- s += “-”;
- s += “web”;
- s += “.”;
- s += “com”;
這樣做沒什么問題,只不過性能不高,因為+=操作符其實調(diào)用的是String類的Append訪問,所以,+=會有兩次函數(shù)調(diào)用,下面的則會好一些。
- view sourceprint?1.StringBuilder s = new StringBuilder();
- s.Append(”dev”);
- s.Append(”-”);
- s.Append(”the”);
- s.Append(”-”);
- s.Append(”web”);
- s.Append(”.”);
- s.Append(”com”);
3.使用Console
- view sourceprint?
- Console.WriteLine("A= " + 1 + " B=" + 2 + " C= " + someValue);
和第二點說的一樣,這并沒有效率,使用下面的語句,會更有效率。
- view sourceprint?1.Console.WriteLine(”A: {0}\nB: {1}\nC: {2}”, 1, 2, someValue);
4.字符串轉整型
- view sourceprint?
- int i = int.Parse(Request.QueryString["id"]);
這樣做的問題是,如果有人這樣請求你的頁面:yourpage.aspx?id=A6,那么A6將會導致你的程序拋出一個異常。因為A6不是一個整數(shù)字符串。使用TryParse會好一點。
- view sourceprint?1.int i;
- if (!int.TryParse(Request.QueryString["id"] , out i))
- {
- //… }
5. 調(diào)用IDbConnection 的 Close 方法
- view sourceprint?
- IDbConnection dbConn = null;
- try{
- dbConn = new SqlConnection(”some Connection String”);
- dbConn.Open();
- }
- finally{
- dbConn.Close(); }
調(diào)用SqlConnection的構造函數(shù)可能會出現(xiàn)一個異常,如果是這樣的話,我們還需要調(diào)用Close方法嗎?
- view sourceprint?
- IDbConnection dbConn = null;
- try{
- dbConn = new SqlConnection(”Some Connection String”);
- dbConn.Open(); }
- finally09.{
- if (dbConn != null)
- {
- dbConn.Close();
- }
6.使用List類
- view sourceprint?
- public void SomeMethod(List items) {
- foreach(var item in items)
- {
- // do something with the item…
- } }
如果我們只是遍歷List容器中的所有內(nèi)容的話,那么,使用IEnumerable接口會更好一些。因為函數(shù)參數(shù)傳遞一個List對象要比一個IEnumerable接口要花費更多的開銷。
- view sourceprint?
- public void SomeMethod(IEnumerable items)
- {
- foreach(var item in items)
- {
- // do something with the item…
- } }
7.直接使用數(shù)字
- view sourceprint?
- if(mode == 1) { … }
- else if(mode == 2) { … }
- else if(mode == 3) { … }
為什么不給你的這些數(shù)字取個名字呢?比如使用Enumerations。
- view sourceprint?
- public enum SomeEnumerator {
- DefaultMode = 1,
- SafeMode = 2,
- NormalMode = 3 }
- if(mode == SomeEnumerator.DefaultMode) { … }
- else if(mode == SomeEnumerator.SafeMode) { … }
- else if(mode == SomeEnumerator.NormalMode) { … }
8.字符串替換
- view sourceprint?
- string s = "www.coolshell.cn is a amazing site"; s.Replace("amazing", "awful");
字符串s的內(nèi)容什么也不會改變,因為string返回的是替換過的字串。這點很多初學者經(jīng)常忘了。下面就沒有問題了。
- view sourceprint?
- s = s.Replace("amazing", "awful");
C#編程入門的八點注意事項就介紹到這里。
【編輯推薦】