知识大全 ASP.NET入门教程 9.2.1 运算符[4]

Posted 表达式

篇首语:幽沉谢世事,俯默窥唐虞。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET入门教程 9.2.1 运算符[4]相关的知识,希望对你有一定的参考价值。

ASP.NET入门教程 9.2.1 运算符[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    逻辑运算符

    逻辑运算符允许将表达式结合起来 这些运算符如表 所示

    除了Not之外的其他运算符都需要两个表达式 其格式如下所示

    表 的结果更加明显

    AndAls 和OrElse运算符与And和Or有相同的结果 但是存在细微的差别 使用普通版本 两个表达式(左侧和右侧)都要进行计算 但是使用简化运算符时没有这个必要 如果其中一个表达式可以保证结果 则可以停止计算表达式 例如 考虑以下代码

    dim Name As String= Dave     If Name= Dave Or Name= Dan Then    name is either Dave or Dan    End If

    在这个示例中要检查Name是否为Dave 然后还要检查 Name 是否为Dan 现在考虑以下代码

    If Name= Dave OrElse Name= Dan Then

    这里首先检查Name是否为Dave 如果是 则不需要执行第二个表达式(检查Name是否为Dan) 因为这不会影响结果 在许多情况下 使用何种形式(普通形式或简化形式)无关紧要 但有时候也有关系 例如 想像如果不是简单地检查名字 而是调用一个函数来更新数据库 在使用普通形式时 数据库将会更新 但简化版本不调用该函数 因而数据库不会被更新 使用标准的And运算符 代码如下所示

    If User IsInRole( Admin ) And UserAudit( Admin ) Then    user is an admin and their details have been updated    End If

    即使当前用户不在Admin角色中 该语句也会调用UserAudit函数 因为使用And意味着要完成测试的两个部分 要解决这个问题可以使用以下语句

    If User IsInRole( Admin ) AndAlso UserAudit( Admin ) Then    user is an admin and their details have been updated    End If

    现在 只有当用户处于Admin角色时才会调用UserAudit 使用·AndAlso意味着如果检查的第一部分失败 则不会计算第二部分 因此不会运行UserAudit

    在另一种情况下简化形式也会有用 当您需要了解某个对象的属性是否存在一个值时 您只要检查该对象是否存在 而不是检查它是否被设置为Noting 例如 考虑以下代码 其中的数据是从数据库获取的 然后只有在返回一些行时才需要执行某个操作

    Dim rdr As SqlDataReader    rdr=DataLayer GetProducts()    If rdr IsNot Nothing And rdr HasRows Then

    假定由于某个原因数据库访问失败 而且rdr被设置为空值 即Nothing 使用And的普通形式时 两个表达式都会被检查 首先完成Nothing的检查 该检查返回False 因为rdr为Nothing 接下来完成第二个检查 检查Boolean变量HasRows的属性 看看是否返回一些数据 但是rdr是Nothing 因此会产生异常 为了解决这个问题 可以使用And的简化形式

    If rdr IsNot Nothing AndAlso rdr HasRows Then

    现在不会产生任何异常 完成第一个检查后 由于结果为False 因此不进行第二个检查 也没有这种必要 因为第一个检查为False之后整个表达式不可能为True

cha138/Article/program/net/201311/14752

相关参考

知识大全 ASP.NET入门教程 9.2.1 运算符[1]

ASP.NET入门教程9.2.1运算符[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 ASP.NET入门教程 9.2.1 运算符[3]

ASP.NET入门教程9.2.1运算符[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 ASP.NET入门教程 9.2.1 运算符[5]

ASP.NET入门教程9.2.1运算符[5]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 ASP.NET入门教程 10.4.1 ASP.NET2.0中的编译

ASP.NET入门教程10.4.1ASP.NET2.0中的编译  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 ASP.NET入门教程 9.4.2 继承[4]

ASP.NET入门教程9.4.2继承[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 ASP.NET入门教程 9.4.1 创建类[4]

ASP.NET入门教程9.4.1创建类[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 ASP.NET入门教程 4.2.4 身份验证[2]

ASP.NET入门教程4.2.4身份验证[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

知识大全 ASP.NET入门教程 4.2.4 身份验证[3]

ASP.NET入门教程4.2.4身份验证[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

知识大全 ASP.NET入门教程 4.2.4 身份验证[1]

ASP.NET入门教程4.2.4身份验证[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

知识大全 ASP.NET入门教程 13.4.5 计划结账[4]

ASP.NET入门教程13.4.5计划结账[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n