程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> 初學C#編程的注意事項

初學C#編程的注意事項

編輯:關於C#
 

下面是8個C#編程時的注意事項是給初學者的,可能你知道,也可能你不知道,不過這些都是一些可能會讓人疏忽的地方,還是要注意一下。

1.使用String變量:

考慮有下面的一個程序想判斷一下字符串是否有內容。

 if (someString.Length > 0)
{
// … }

但是,這個字符串對象很可能是個空對象,所以,最好先判斷一下null

 if (!String.IsNullOrEmpty(someString))
{
// 是不是更好一些? }

 

2.字符器連接

1
2
3
4
5
6
7 string s = “dev”;
s += “-”;
s += “the”;
s += “-”;
s += “web”;
s += “.”;
s += “com”;

這樣做沒什麼問題,只不過性能不高,因為+=操作符其實調用的是String類的Append訪問,所以,+=會有兩次函數調用,下面的則會好一些。

1
2
3
4
5
6
7
8 StringBuilder s = new StringBuilder();
s.Append(”dev”);
s.Append(”-”);
s.Append(”the”);
s.Append(”-”);
s.Append(”web”);
s.Append(”.”);
s.Append(”com”);

3.使用Console

1 Console.WriteLine("A= " + 1 + " B=" + 2 + " C= " + someValue);

和第二點說的一樣,這並沒有效率,使用下面的語句,會更有效率。

1 Console.WriteLine(”A: {0}\nB: {1}\nC: {2}”, 1, 2, someValue);

4.字符串轉整型

1 int i = int.Parse(Request.QueryString["id"]);

這樣做的問題是,如果有人這樣請求你的頁面:yourpage.aspx?id=A6,那麼A6將會導致你的程序拋出一個異常。因為A6不是一個整數字符串。使用TryParse會好一點。

1
2
3
4
5 int i; if (!int.TryParse(Request.QueryString["id"] , out i))
{
//… }

5. 調用IDbConnection 的 Close 方法

1
2
3
4
5
6
7
8
9
10
11 IDbConnection dbConn = null;
try
{
dbConn = new SqlConnection(”some Connection String”);
dbConn.Open();
} finally
{
dbConn.Close();
}

調用SqlConnection的構造函數可能會出現一個異常,如果是這樣的話,我們還需要調用Close方法嗎?

1
2
3
4
5
6
7
8
9
10
11
12
13
14 IDbConnection dbConn = null;
try
{
dbConn = new SqlConnection(”Some Connection String”);
dbConn.Open();
} finally
{
if (dbConn != null)
{
dbConn.Close();
}
}

6.使用List類

1
2
3
4
5
6
7 public void SomeMethod(List<SomeItem> items)
{
foreach(var item in items)
{
// do something with the item… }
}

如果我們只是遍歷List容器中的所有內容的話,那麼,使用IEnumerable接口會更好一些。因為函數參數傳遞一個List對象要比一個IEnumerable接口要花費更多的開銷。

1
2
3
4
5
6
7 public void SomeMethod(IEnumerable<SomeItem> items)
{
foreach(var item in items)
{
// do something with the item… }
}

7.直接使用數字

1
2
3 if(mode == 1) { … } else if(mode == 2) { … } else if(mode == 3) { … }

為什麼不給你的這些數字取個名字呢?比如使用Enumerations。

1
2
3
4
5
6
7
8
9
10 public enum SomeEnumerator
{
DefaultMode = 1,
SafeMode = 2,
NormalMode = 3
}
if(mode == SomeEnumerator.DefaultMode) { … } else if(mode == SomeEnumerator.SafeMode) { … } else if(mode == SomeEnumerator.NormalMode) { … }

8.字符串替換

1
2 string s = "www.coolshell.cn is a amazing site";
s.Replace("amazing", "awful");

字符串s的內容什麼也不會改變,因為string返回的是替換過的字串。這點很多初學者經常忘了。下面就沒有問題了。

1 s = s.Replace("amazing", "awful");
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved