接触VB不是很久哈,问一个小问题
    Dim i As Integer
    
    i = 0
    
    Debug.Print aaa & (i)
    Debug.Print aaa & i
2个打印出来的都是 aaa0,请问有啥区别不???。只是为了看的清除一点???

解决方案 »

  1.   

    括号是用来表示为 "表达式"
    Debug.Print aaa & i 这样也可以,估计是VB将i隐性转换成了字符串.
      

  2.   

    没区别 但是 aaa & (i) 是错误的能通过 那是因为VB的兼容性 文字与数值是不能相加的正确的是 aaa & Cstr(i)
      

  3.   

    MSDN中有这样的描述(大意),将一个变量转换为一个表达式最简单的方法,就是将变量放入括号中...
    aaa & (i)中,变量i转换为了一个表达式,性质与aaa & (i+1)一样,i的结果是0
    aaa & 0,这里连接符是字符串连接符&,所以VB隐式地将0转换字符类型,结果就是aaa0
      

  4.   

    i = 0 是浪费,不赋值就是0.
    像boolean,不赋值就是false。
    还有aaa是定量?
    别忘了option explicit,切记。
      

  5.   

    不是很同意,VB是一个弱类型的语言,甚至可以不用定义变量直接使用...当初VB会隐式将你未定义的变量的数据类型定义为variant(变体)
    但是,我又同意cbm666,因为,这是一个非常愚昧的陋习,当工程一大,危机马上就逼近了,特别是需要依据传值的数据类型进行判断时,你就不知道传过来的值是啥类型了,到时候焦头烂额都没用
    还有,你浪费资源,variant数据类型所占字节数比其他的都要大。
    同意企鹅兄Penguin :option explicit