博文

VB.Net逻辑运算符和位运算符(2013-06-03 14:39:00)

摘要: 逻辑运算符比较 Boolean 表达式,并返回 Boolean 结果。And、Or、AndAlso、OrElse 和 Xor 运算符是二元运算符,原因是它们接受两个操作数,而 Not 运算符是一元运算符,原因是它只接受一个操作数。上述的某些运算符也可对整数值执行按位逻辑运算。  一元逻辑运算符 Not 运算符 (Visual Basic) 对 Boolean 表达式执行逻辑求反。它生成其操作数的逻辑相反值。如果表达式的计算结果为 True,则 Not 返回 False;如果表达式的计算结果为 False,则 Not 返回 True。下面的示例阐释这一点。 Visual Basic 复制代码 Dim x, y As Boolean x = Not 23 > 14 y = Not 23 > 67 ' The preceding statements set x to False and y to True.  二元逻辑运算符 And 运算符 (Visual Basic) 对两个 Boolean 表达式执行逻辑合取。如果两个表达式的计算结果均为 True,则 And 返回 True。如果其中至少一个表达式的计算结果为 False,则 And 返回 False。 Or 运算符 (Visual Basic) 对两个 Boolean 表达式执行逻辑析取或包含。如果任意一个表达式的计算结果为 True,或两个表达式的计算结果均为 True,则 Or 返回 True。如果两个表达式的计算结果都不是 True,则 Or 返回 False。 Xor 运算符 (Visual Basic) 对两个 Boolean 表达式执行逻辑互斥。如果恰好只有一个表达式的计算结果为 True(而不是两个都是),Xor 返回 True。如果两个表达式的计算结......

阅读全文(2499) | 评论:1

DirectCast, CType和TryCast 的区别(2013-04-16 16:17:00)

摘要:介绍基于继承或实现的类型转换操作。

在 Object 数据类型之间来回转换时,DirectCast 不使用 Visual Basic 运行时帮助器例程进行转换,因此它可以提供比 CType 更好一些的性能。

使用 DirectCast 关键字的方法与使用 CType 函数和 TryCast 关键字相同。提供一个表达式作为第一个参数,提供一个类型以将它转换为第二个参数。DirectCast 需要两个参数的数据类型之间的继承或实现关系。这意味着一个类型必须继承或实现另一个类型。

错误和失败
如果 DirectCast 检测到不存在继承或实现关系,则生成一个编译器错误。但是没有出现编译器错误并不能保证肯定进行了成功的转换。如果需要的转换为收缩转换,则可能在运行时失败。如果发生这种状况,运行库会引发一个 InvalidCastException 错误。

转换关键字
类型转换关键字的对比如下。

关键字 
 数据类型 
 参数关系 
 运行时故障 
 
CType 函数 
 任何数据类型 
 必须在两种数据类型之间定义扩大转换或收缩转换 
 引发 InvalidCastException
 
DirectCast 
 任何数据类型 
 一个类型必须继承或者实现另一个类型 
 引发 InvalidCastException
 
TryCast 
......

阅读全文(2039) | 评论:1