关于编程习惯的问题 if(object == null) 本帖最后由 pthiiu 于 2010-11-16 21:39:36 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void functionB(object obj){ if( obj == null) return; foo(obj); obj.Bar(); // some methods about obj. ... ..}看看这个怎么样? 第二种,少一些if else ,代码更易读 其实两种方法从运行速度上来说都可以,第一种是就执行,不是就执行else,第二种,是就直接返回,不是就继续往下执行,显然两种方法,按自己的习惯使用即可。 典型的防御式编程,肯定是第二种了,易读的多。你现在是一个参数,如果参数多了,你看看第一种会出现什么情况呢?var func(object obj1,object obj2,object obj3){ if(obj1 != null) { if(obj2 != null) { if(obj3 != null) { } {Console.WriteLine("Object is null.");} }{Console.WriteLine("Object is null.");} } { Console.WriteLine("Object is null."); }}//繁锁吧如果用防御式,提前返回,就没有这么多嵌套了 我一直用第二种! 这些是个人喜好!用第一种不容易出错!用第二种 的缺点就是怕忘记写 那个return.我刚学时,忘记过!第二种的优点:有多个嵌套if 时,看起来 嵌套层数要少些,少一个 {}!当然有些情况是只能用第一种的:if(){...}else{...}..... 此还有代码要执行 ,前面不能return! 虽然C# 也支持goto,都是都不推荐使用这个方式! 俄罗斯方块游戏 using用法 WINDOWS PHONE 7/C# 操作Sqlite的增删改查和表的显示方式 (急)關于設置DGV中的各欄的ReadOnly,為何設了無效? 点击按钮,不会执行.请教不会执行的原因 没招式了,贴代码了.. 关于DATAGRID的 关于数据库的几个简单问题 C#里怎么对一个小数4舍五入啊?谢谢 c# 截取字符串 并非易事!!! 谁帮翻译端程序 c 的 转 c# C#调用远程连接(mstsc)能不能直接在命令里输入用户名 &密码 C#.NET生成的应用程序连接数据库问题 visual studio 2008 怎么界面控件都锁定,无法编辑了?
void functionB(object obj)
{
if( obj == null) return;
foo(obj);
obj.Bar();
// some methods about obj.
...
..
}
看看这个怎么样?
{
if(obj1 != null)
{
if(obj2 != null)
{
if(obj3 != null)
{
} {Console.WriteLine("Object is null.");} }{Console.WriteLine("Object is null.");}
}
{
Console.WriteLine("Object is null.");
}
}
//繁锁吧如果用防御式,提前返回,就没有这么多嵌套了
if(){
...
}else{
...
}..... 此还有代码要执行 ,前面不能return! 虽然C# 也支持goto,都是都不推荐使用这个方式!