boolean型只能取0和1两个值。遇到只能取3个值的情况,一般怎么表示?比如:-1表示该变量尚未赋值;0表示该变量取真,1表示该变量取假。程序的逻辑需要区分这3种状态。

解决方案 »

  1.   

    那就optional bTmp as boolean 然后IsMissing(bTmp)判断
      

  2.   


    我是在类模块中用:private m_bTmp as boolean
    希望这个私有属性能记录三种状态,并能在3种状态之间切换。枚举是可行的,想看看还有别的办法没。你的办法貌似不可行
      

  3.   

    Msdn---------
    value 的设置值为: 
    CheckBox 控件-0 是没有检查(缺省值),1 为已检查,和 2 为变灰(变暗)。
    CheckBox1.Value-1 就有-1,0,1三个值,可以通过检索和为赋值来满足你的要求
      

  4.   

    干吗搞得那么复杂呀。
    就用 Integer / Long 类型的数据。
    用值 -1 0 1表示三种状态就行了。
      

  5.   

    就用 Integer / Long 类型的数据。 
    用值 -1 0 1表示三种状态就行了。 
      

  6.   

    我也是这意见.干嘛非用BOOLEAN呢.
      

  7.   

    可以用:VbTriState
    参考 FormatCurrency()、FormatNumber()、FormatPercent() 等函数
      

  8.   

    用枚举是正解,boolean也是32bit(32位的CPU操作integer还没有long快)
    但boolean不是枚举,而是与C语言兼容的0与非0判断。
      

  9.   


    感觉三态常数实质就是枚举,不过是VBSCRIPT定义好的枚举常量?统一用-1表真,0表假,-2表示用缺省设置?
      

  10.   

    Boolean 的 True/False 就是 -1/0,vbTriState 可以尽量保持一致性(可以间 Boolean 直接赋给 vbTriState)。
    当然你自己定义一套也可以,只是容易引起混淆。