首页 / C# / C#几个经常犯错误汇总
C#几个经常犯错误汇总
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#几个经常犯错误汇总,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2765字,纯文字阅读大概需要4分钟。
内容图文
![C#几个经常犯错误汇总](/upload/InfoBanner/zyjiaocheng/738/10e516c64a594a5d83ee93b485f42ac1.jpg)
在我们平常编程中,时间久了有时候会形成一种习惯性的思维方式,形成固有的编程风格,但是有些地方是需要斟酌的,即使是一个很小的错误也可能会导致昂贵的代价,要学会善于总结,从错误中汲取教训,尽量不再犯同样错误,注重编程之美,代码的优雅,总结几个平常经常犯的错误。
1、在C#编程中,字符型类型是最容易处理出错的地方,代价是非常昂贵,在.Net Framwork中,字符串是一个相当特别的引用类型,string本省就是一个不可继承的密封类,但是它具有了值类型所应用的特点,但是它在CLR中内存还是保存于托管堆之上,也就是说,当我们每次定义一个字符串类型的时候,就在堆内存中开辟一端内存,而当我们字符串被修改之后,它会创建一个新的内存,注意这里的内存是不连续的,而是通过修改栈内地址引用而拼凑字符串,不会改变源字符串在内存中的地址,所以有些程序员总是喜欢使用这样的方法格式化字符串:
string SelectText="select * from "+TableName+" where UserName='"+Name+"'";
上述代码,使用了字符串拼凑的方法,因为使用了多重串联,因此会在内存中创建两个不必要的字符串垃圾副本。
string SelectText=string.Format("select * from {0} where UserName={1}",TableName,Name);
2、大多数开发人员都不知道内置的验证数据类型的方法,如System.Int32,因此很多人都是自己实现的,其实这是不妥的,因为这些基本类型中都存在自己固有的类型验证方法,下面这个就是自己实现验证的一个字符串是否是数值的代码:
public bool CheckIfNumeric(string value)
{
bool IsNumeric=true;
try
{
int i=Convert.ToInt32(value);
}
catch(FormatException excepiton)
{
IsNumeric=false;
}
return IsNumeric;
}
虽然使用了try catch语句,这不是最佳的做法,更好的方法是下面使用Int.TryParse;
int output=0;
bool IsNumeric=int.TryParse(value,out output);
int.TryParse是更快、更简洁的方法。
3、学会合理的管理公共变量,我们在系统中经常会滥用公共变量,没有做到合适的封装好。
![C#几个经常犯错误汇总 - 文章图片](/upload/getfiles/0001/2021/5/4/20210504124019144.jpg)
![C#几个经常犯错误汇总 - 文章图片](/upload/getfiles/0001/2021/5/4/20210504124019255.jpg)
1 static void Main(string[] args)
2 {
3 MyAccount account=new MyAccount();
4 //这地方不能随便的调用account里面的字段进行更改,但是缺改了
5 account.AccountNumber="ddddddddd";
6 Console.ReadKey();
7 }
8 public class MyAccount
9 {
10 public string AccountNumber;
11 public MyAcctount()
12 {
13 AccountNumber="ssssssssssssss";
14 }
15 }
在上面的MyAccount类中生命了一个AccountNumber公共变量,理想情况下,AccountNumber应该是只读的,不能让外界修改,但是这里MyAccount类却没有对它做任何控制。
声明公共做法应该是使用属性,如:
![C#几个经常犯错误汇总 - 文章图片](/upload/getfiles/0001/2021/5/4/20210504124019144.jpg)
![C#几个经常犯错误汇总 - 文章图片](/upload/getfiles/0001/2021/5/4/20210504124019255.jpg)
1 public class MyAccount
2 {
3 private stirng _accountNumber;
4 public string AccountNumber
5 {
6 get { return _accountNumber; }
7 }
8 public MyAccount()
9 {
10 _accountNumber="dddddddd";
11 }
12 }
这里我们封装了AccountNumber公共变量,它变成了只读,不能由调用者类进行修改。
转载于:https://www.cnblogs.com/lihuijun/archive/2013/03/20/2423480.html
内容总结
以上是互联网集市为您收集整理的C#几个经常犯错误汇总全部内容,希望文章能够帮你解决C#几个经常犯错误汇总所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。