`
isiqi
  • 浏览: 16358115 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

.net 基础知识大杂烩(2) ——条件语句

阅读更多
If 语句

C# VB
int i = 3;
if (i < 5)
{
Console.WriteLine("i 小于 5");
}
Dim i As Integer = 3
If i < 5 Then
Console.WriteLine("i 小于 5")
End If
int i = 9;
if (!(i < 5))
{
Console.WriteLine("i 大于等于 5");
}
Dim i As Integer = 9
If Not i < 5 Then
Console.WriteLine("i 大于等于 5")
End If
int i = 3;
if (i < 5)
{
Console.WriteLine("i 小于 5");
}
else
{
Console.WriteLine("i 大于等于 5");
}
Dim i As Integer = 3
If i < 5 Then
Console.WriteLine("i 小于 5")
Else
Console.WriteLine("i 大于等于 5")
End If
int i = 3;
if (i < 5)
{
Console.WriteLine("i 小于 5");
}
else if (i == 5)
{
Console.WriteLine("i 等于 5");
}
else
{
Console.WriteLine("i 大于 5");
}
Dim i As Integer = 3
If i < 5 Then
Console.WriteLine("i 小于 5")
ElseIf i = 5 Then
Console.WriteLine("i 等于 5")
Else
Console.WriteLine("i 大于 5");
End If

switch 语句

C# VB
int i = 9;
switch (i)
{
case 3:
Console.WriteLine("i = 3");
break;
case 5:
Console.WriteLine("i = 5");
break;
case 9:
Console.WriteLine("i = 9");
break;
default:
Console.WriteLine("other");
break;
}
Dim i As Integer = 9
Select Case i
Case 3
Console.WriteLine("i = 3")
Case 5
Console.WriteLine("i = 5")
Case 9
Console.WriteLine("i = 9")
Case Else
Console.WriteLine("other")
End Select
int i = 5;
switch (i)
{
case 3:
case 5:
case 9:
Console.WriteLine("i = 3 or 5 or 9");
break;
default:
Console.WriteLine("other");
break;
}
Dim i As Integer = 5
Select Case i
Case 3, 5, 9
Console.WriteLine("i = 3 or 5 or 9")
Case Else
Console.WriteLine("other")
End Select
不支持 Dim i As Integer = 9
Select Case i
Case 5 To 9
Console.WriteLine("i = 5 to 9")
End Select
enum Tricolor { Red, Green, Blue }
// ...
Tricolor color = Tricolor.Blue;
switch (color)
{
case Tricolor.Blue:
Console.WriteLine("Blue");
break;
case Tricolor.Green:
Console.WriteLine("Green");
break;
default:
Console.WriteLine("other color");
break;
}
Enum Tricolor
Red
Green
Blue
End Enum
' ...
Dim color As Tricolor = Tricolor.Blue
Select Case color
Case Tricolor.Blue
Console.WriteLine("Blue")
Case Tricolor.Green
Console.WriteLine("Green")
Case Else
Console.WriteLine("other color")
End Select

技巧

1. Imposible Is Nothing

记得我在调试程序的时候说得最多的一句话就是“不可能啊……”。因为我们在编程的时候总是要假设很多条件的。我们会假设天不会塔下来、出门不会被车撞到、吃饭不会被噎死,否则就没法生活下去了。例如我们会这样写程序:
if(sex==1)
{
Console.WriteLine(
"男人");
}
elseif(sex==0)
{
Console.WriteLine(
"女人");
}
因为我们心想 sex 变量不可能出现别的值。
不过一旦写了这样的代码,不久之后就一定会后悔的,因为就像温伯格所说的,“所有不可能发生的事情都一定会发生”,所以正确的写法应该是:
if(sex==1)
{
Console.WriteLine(
"男人");
}
elseif(sex==0)
{
Console.WriteLine(
"女人");
}
else
{
System.Diagnostics.Debug.Assert(
false,"Shouldneverreachhere!");
}
或者这样写也不错:
System.Diagnostics.Debug.Assert((sex==1||sex==0),"wrongsex");
if(sex==1)
{
Console.WriteLine(
"男人");
}
else
{
Console.WriteLine(
"女人");
}
总之只要你写if或switch语句,就要确保它覆盖了变量的所有取值范围。

2. 避免多层嵌套的if语句

相信大家都受过一层套着一层又套着一层的代码的折磨,特别是正巧每层代码又很长的时候,那感觉就像在热带雨林里迷了路,转过好几圈却不知道自己身在何处。比较下面两段功能相同的代码。
可读性不好的代码:
publicstringfoo(intage)
{
if(age>=0&&age<=150)
{
if(age>=0&&age<=18)
{
return"青少年";
}
elseif(age>18&&age<=60)
{
return"中年";
}
else
{
return"老年";
}
}
else
{
return"无效的年龄";
}
}

可读性好的代码:
publicstringfoo(intage)
{
if(age<0||age>150)
{
return"无效的年龄";
}

if(age>=0&&age<=18)
{
return"青少年";
}
elseif(age>18&&age<=60)
{
return"中年";
}
else
{
return"老年";
}
}


是不是感觉一下子清新了好多?而且更重要的是,第二段代码把对正常情况的处理和非正常情况下的处理明显地分成了两部分,使读者更容易集中精力。

http://www.cnblogs.com/1-2-3/archive/2008/01/30/net-basic-knowledge-2-cs-vb-condition-statement.html

分享到:
评论

相关推荐

    亮剑.NET深入体验与实战精要2

    第3章 ASP.NET开发大杂烩 113 3.1 页面生命周期 114 3.1.1 独立页面生命周期事件顺序 114 3.1.2 具有Master页的生命周期事件顺序 116 3.1.3 ASP.NET生命周期详解 118 3.2 页面状态管理 120 3.2.1 Cookie 121 3.2.2...

    亮剑.NET深入体验与实战精要.part2

     第3章 asp.net开发大杂烩  3.1 页面生命周期  3.2 页面状态管理  ……  第4章 windows窗体编程你也行  第5章 数据库开发  第6章 关于xml  第7章 web service开发详解  第8章 用户体验的杀手锏——...

    GenomeDotNet:.NET项目的大杂烩,可用于处理23andme数据

    .NET项目的大杂烩,可用于处理23andme数据 ISOGG 2015 Y-DNA单倍体树 在互联网上寻找易于解析的ISOGG 2015 Y-DNA Haplogroup树的版本,我倒霉了。 因此,我决定刮除ISOGG的页面并将数据投影到易于使用的JSON文件中。...

    基础传统神经网络算法大杂烩.zip

    基础传统神经网络算法大杂烩基础传统神经网络算法大杂烩 基础传统神经网络算法大杂烩基础传统神经网络算法大杂烩 基础传统神经网络算法大杂烩基础传统神经网络算法大杂烩 基础传统神经网络算法大杂烩基础传统神经...

    亮剑.NET深入体验与实战精要3

    第3章 ASP.NET开发大杂烩 113 3.1 页面生命周期 114 3.1.1 独立页面生命周期事件顺序 114 3.1.2 具有Master页的生命周期事件顺序 116 3.1.3 ASP.NET生命周期详解 118 3.2 页面状态管理 120 3.2.1 Cookie 121 3.2.2...

    数据库连接语句大杂烩

    数据库连接语句是进行数据库操作的基础,不同的数据库系统有着各自特定的连接方式。本文将对给定文件中提及的各种数据库连接语句进行详细解析,帮助读者更好地理解和掌握不同数据库的连接方法。 ### 1. MSSQLServer...

    ASP.NET 大杂桧

    在"ASP.NET 大杂烩"这个主题中,我们主要关注三个核心知识点:AJAXPro的参数传递、ASP.NET分页技术和Repeater控件。 首先,AJAXPro是ASP.NET中的一个库,它允许开发者创建高效的、具有部分页面更新功能的Web应用,...

    亮剑.NET深入体验与实战精要.part3

     第3章 asp.net开发大杂烩  3.1 页面生命周期  3.2 页面状态管理  ……  第4章 windows窗体编程你也行  第5章 数据库开发  第6章 关于xml  第7章 web service开发详解  第8章 用户体验的杀手锏——...

    亮剑.NET深入体验与实战精要.part4(完)

     第3章 asp.net开发大杂烩  3.1 页面生命周期  3.2 页面状态管理  ……  第4章 windows窗体编程你也行  第5章 数据库开发  第6章 关于xml  第7章 web service开发详解  第8章 用户体验的杀手锏——...

    亮剑.NET深入体验与实战精要.part1.

     第3章 asp.net开发大杂烩  3.1 页面生命周期  3.2 页面状态管理  ……  第4章 windows窗体编程你也行  第5章 数据库开发  第6章 关于xml  第7章 web service开发详解  第8章 用户体验的杀手锏——...

    C++基础入门教程(一):基础知识大杂烩

    C++是一种强大的面向对象编程语言,对于初学者来说,掌握其基础知识至关重要。本文将深入探讨C++的基础概念,包括注释、头文件、命名空间以及它们在实际编程中的应用。 首先,注释是编程中不可或缺的部分,它们为...

    各种工具大杂烩

    在IT行业中,"工具大杂烩"通常指的是包含多种不同类型工具的集合,这些工具可能涵盖了开发、测试、运维、数据分析等多个领域。在这个压缩包文件"聚宝盆"中,我们可以推测它可能包含了丰富的IT资源,旨在帮助用户一站...

    (大杂烩)proteus仿真MCS51一百例.rar

    (大杂烩)proteus仿真MCS51一百例.rar(大杂烩)proteus仿真MCS51一百例.rar(大杂烩)proteus仿真MCS51一百例.rar(大杂烩)proteus仿真MCS51一百例.rar(大杂烩)proteus仿真MCS51一百例.rar(大杂烩)proteus仿真MCS51一百例...

    人脸识别大杂烩

    总的来说,“人脸识别大杂烩”涵盖的内容广泛且深入,从基础理论到前沿技术,从算法实现到实际应用,无不体现了这一领域的发展活力和广阔前景。通过不断的研究和创新,人脸识别技术将持续推动社会智能化的步伐。

    dos下汇编语言小程序,大杂烩2

    "dos下汇编语言小程序,大杂烩2"这个主题聚焦于在DOS(Disk Operating System)环境下,通过汇编语言编写的小程序。DOS是一个早期的命令行操作系统,广泛应用于个人计算机上,尤其是在80年代和90年代。在这个"大杂烩...

    测试大杂烩

    在这个“测试大杂烩”中,我们将会探讨软件测试的基础概念、测试用例设计、自动化测试的原理以及在实际项目中如何有效地运用这些知识。 首先,我们要理解什么是软件测试。它是一种系统性的过程,用于评估软件产品...

    网络安全大杂烩

    罗列了一些网络安全方面的知识,简单介绍了安全测试的知识。

    matlab学习资料合集大杂烩资源总共大小3G

    综上所述,这套MATLAB学习资料合集大杂烩资源不仅包含了从基础到高级的所有必要知识,还涉及了多个领域的具体应用案例和实战项目,对于想要系统学习MATLAB的学习者来说是非常宝贵的资源。通过有效利用这些资源,可以...

Global site tag (gtag.js) - Google Analytics