上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
精用Boolean表达式,让代码再减肥
作者:未知 申领版权
2010年11月14日 共有 933 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    精用Boolean表达式,让代码再减肥
    
    当设置基于表达式结果的Boolean型数值时,要避免使用多余的If/Then/Else语句结果。比如:
    
    
    If SomeVar > SomeOtherVar Then
    
    BoolVal = True
    
    Else
    
    BoolVal = False
    
    End If
    
    
    上面这段代码就很烦琐,它们完全可以使用下面的一行代码来替代:
    
    
    BoolVal = (SomeVar > SomeOtherVar)
    
    括号不是必须的,但可以增加可读性。根据表达式中的操作数不同,后者比前者执行起来大约快50%到85%。后者中的括号对速度没有影响。
    
    有时,使用这个技术实现代码的简练并非很明显。关键是要牢记:所有的比较操作结果或者是0(false),或者是-1(True)。所以,下面例子中的2段代码是完全相同的,但是第2段要运行得快些:
    
    
    1、传统方法:
    
    If SomeVar > SomeOtherVar Then
    
    x = x 1
    
    End If
    
    
    2、更简练的方法
    
    x = x - (SomeVar > SomeOtherVar)
    
    函数名巧做局部变量
    
    很多程序员都没有认识到“在函数本身中使用函数名”的妙处,这就象对待一个局部变量一样。应用这个技巧可以起到临时变量的作用,有时还能加速程序运行。看看下面的代码:
    
    
    
    Function Max(arr() As Long) As Long
    
    Dim res As Long, i As Long
    
    res = arr(LBound(arr))
    
    For i = LBound(arr) 1 To UBound(arr)
    
    If arr(i) > res Then res = arr(i)
    
    Next
    
    Max = res
    
    End Function
    
    去掉res变量,使用函数名称本身这个局部变量,可以使程序更加简练:

    
    Function Max(arr() As Long) As Long
    
    Dim i As Long
    
    Max = arr(LBound(arr))
    
    For i = LBound(arr) 1 To UBound(arr)
    
    If arr(i) > Max Then Max = arr(i)
    
    Next
    
    End Function
    
    火眼识破隐藏的Variant变量
    
    如果没有用As语句声明变量,默认类型就是Variants,比如:
    
    
    
    Dim name ’ this is a variant
    
    
    或者,当前模块下没有声明Option Explicit语句时,任何变量都是Variants类型。
    
    许多开发者,特别是那些先前是C程序员的人,都会深信下面的语句将声明2个Interger类型变量:
    
    
    
    Dim x, y As Integer
    
    而实际上,x被声明为了variant类型。由于variant类型变量要比Integer类型慢很多,所以要特别注意这种情况。正确的一行声明方法是:
    
    
    Dim x As Integer, y As Integer
    
    
    GoSub在编译程序中速度变慢
    
    编译为本地代码的VB应用程序中,如果使用 GoSubs 命令,就会比通常的 Subs 或者 Function 调用慢5-6倍;相反,如果是p-code模式,就会相当快。
    
    
    

    

 

相关新闻

您可能对这些感兴趣  

用VB做定时断线程序
VisualBasic中的界面设计原则和编程技巧
VB6.0与Windows API 间的呼叫技巧
制作可以自动隐藏的弹出式菜单
ListBox中的字符串超长显示的解决方法
VB中的Unicode 和 Ansi 格式
优化程序显示速度
Visual Basic 产生渐层的 Form 背景
用VB实现客户——服务器(TCP/IP)
用VB制作注册软件的方法

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》