アプリ版:「スタンプのみでお礼する」機能のリリースについて

ご存知の方教えて頂けますか?

Boolean型変数の値が True なら False,False なら True に変換したいのですが、現在次のようにcodeを書き、希望した値になります。

Dim bool As Boolean
中略
bool = bool - True

このcodeは正しいのでしょうか?
他に ”正しい方法”があるのでしょうか?
スミマセン!よろしくお願いします。

A 回答 (3件)

> このcodeは正しいのでしょうか?


コードとしては「間違ってはいない」ぐらいでしょうか・・・

VB(VB.NET)の場合、(VB2005のヘルプの「ブール型 (Boolean) (Visual Basic) 」より抜粋)
------------------------------------------------------------
Visual Basic で数値型の値をブール型 (Boolean) に変換すると、
0 は False になり、その他の値はすべて True になります。
Visual Basic でブール型 (Boolean) の値を数値型に変換すると、False は 0 になり、True は -1 になります。
-------------------------------------------------------------
と言う制約がありますから、期待どうりに動作するでしょうけど・・・

bool がFalseなら、
「bool -True」は「0- -1=1」となり、「0以外」なので、Trueになり、
bool がTrueなら、
「bool -True」は「-1- -1= 0」となり、「0」なので、Falseになる・・・



> ”正しい方法”
は、やはり、「Not 演算子」による「論理否定」でしょうね。
    • good
    • 1
この回答へのお礼

ありがとうございます。
勉強になりました。

お礼日時:2007/01/31 10:59

#2です。


追記ですが、VB2005で、「Option Strict On」(暗黙の型変換禁止)の設定をしている場合、

> bool = bool - True
は、
> bool = CBool(CShort(bool) - CShort(True))
の様に明示的な型変換を記述しないとエラーになりますので、ご注意。
    • good
    • 0

Dim bool As Boolean


bool = Not (bool)
MsgBox bool

反転するなら論理演算(NOT)をします。
    • good
    • 0
この回答へのお礼

ありがとうございます。
勉強になりました。

お礼日時:2007/01/31 11:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!