初学C#编程的注意事项

开发 后端
本文给初学C#编程者介绍了C#编程的8条注意事项,希望对初学者会有一定的帮助。

下面是8个C#编程时的注意事项是给初学C#编程者的,可能你知道,也可能你不知道,不过这些都是一些可能会让人疏忽的地方,还是要注意一下。

1.使用String变量

初学C#编程首先注意String变量的使用。考虑有下面的一个程序想判断一下字符串是否有内容。

  1. if (someString.Length > 0)   
  2. {   
  3.       
  4. // …   

但是,这个字符串对象很可能是个空对象,所以,最好先判断一下null

  1. if  (!String.IsNullOrEmpty(someString))   
  2. {   
  3.       
  4. // 是不是更好一些?   

2.字符器连接

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

这样做没什么问题,只不过性能不高,因为+=操作符其实调用的是String类的Append访问,所以,+=会有两次函数调用,下面的则会好一些。

  1. StringBuilder s = new StringBuilder();   
  2. s.Append(”dev”);   
  3. s.Append(”-”);   
  4. s.Append(”the”);   
  5. s.Append(”-”);   
  6. s.Append(”web”);   
  7. s.Append(”.”);   
  8. 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. int i;   
  2. if (!int.TryParse(Request.QueryString["id"] , out i))   
  3. {   
  4.       
  5. //…   

5. 调用IDbConnection 的 Close 方法

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

调用SqlConnection的构造函数可能会出现一个异常,如果是这样的话,我们还需要调用Close方法吗?

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

6.使用List类

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

如果我们只是遍历List容器中的所有内容的话,那么,使用IEnumerable接口会更好一些。因为函数参数传递一个List对象要比一个IEnumerable接口要花费更多的开销。

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

7.直接使用数字

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

为什么不给你的这些数字取个名字呢?比如使用Enumerations。

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

8.字符串替换

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

字符串s的内容什么也不会改变,因为string返回的是替换过的字串。这点很多初学者经常忘了。下面就没有问题了。

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

希望这些注意事项可以帮助初学C#编程者更容易掌握C#编程。

【编辑推荐】

  1. C#实现多语言界面程序的方法介绍
  2. 介绍C#构造函数的使用方法
  3. C#多态性的概念及其应用
  4. 浅析C# treeview控件的使用方法
  5. 总结C#获取当前路径的7种方法
责任编辑:book05 来源: coolshell
相关推荐

2011-07-06 09:44:34

C#

2011-07-06 09:46:56

C#

2010-02-03 10:21:46

初学Python

2009-08-06 16:13:16

C# Web Serv

2009-12-08 09:45:50

调用WCF

2010-03-16 10:16:18

2010-01-18 14:25:19

使用C++Builde

2011-05-26 11:22:04

SEO

2014-07-29 10:12:38

LinuxC语言编程

2010-01-18 16:12:16

CC++语言

2010-01-25 18:12:28

C++

2010-01-14 18:19:40

C++语言

2010-01-20 17:58:54

C++静态成员

2010-01-26 16:54:58

学习C++

2010-02-03 16:42:45

C++变量作用域

2010-01-27 09:12:01

C++语言学习

2009-12-15 17:47:17

VSIP

2015-05-04 14:51:49

SQL子查询

2011-06-14 15:25:28

C++多线程

2010-11-26 16:27:01

MySQL使用变量
点赞
收藏

51CTO技术栈公众号