C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 106 を表示中)
■63519 / )  Re[9]: Brushesのカラーコードを変数に出来ませんか?
□投稿者/ 魔界の仮面弁士 (48回)-(2012/09/04(Tue) 11:13:00)
No63518 (shu さん) に返信
> 違うことのように感じるかもしれませんが
> 私の言いたいことはこういうことです。

言いたいことは分かります。

一方で、自分の認識だと、ビットフラグは On/Off を表すために使われるので、
マスク結果を Boolean として扱うこともあるだろう、程度の認識です。

もちろん、Bitwise 演算結果を整数データとして扱った上で、それを
0 より大きいか、0 以外の値か、として比較する考え方も分かります。

# 数が多ければ BitArray や BitVector32 なども使えますが、
# 今回のケースでは冗長ですね。


現在の私は、<> 0 (あるいは、None 相当の列挙値との比較)を多用しますが、
だからといって、CBool 表現、>0 での比較、HasFlag 利用のいずれも、
他者のコードに修正を求めるほどの表現であるとまでは感じていません。


> 場合はBooleanとみなすのは分かりにくいと思います。
shu さんがそう思っている、という点は分かるのですが、どういう時に
CBool を使うものと考えておられるかが読み取れませんでした。なので、

>> CBoolはBoolean型への変換を行う関数であって
> 何を Boolean 型に変換する事を目的としているのでしょう。

この質問に対する答えもお聞きしたいです。


現時点で改めて私の疑問点を言えば、どちらかといえば CBool の意義についてなので。

> CBoolで変換するときに互換性のために0をFalseに変換し
> それ以外をTrueに変換はしていますが
> Integer And Integer の値はIntegerであってBooleanではないので
> このような意味が分かりにくい変換をすべきではないと思います。

「互換性のために」という文からは、以前は使われていたけれども
現在は推奨されない変換処理であるという意図を感じるのですが、だとすると
どういう時に CBool は使われるべきでしょうか。(あるいは、CBool 自体を
将来的には廃止するべきだ、という思いがあるのでしょうか)

# 元質問からズレてきているので、スレッドを分けた方が良いのかも。
返信 編集キー/


管理者用

- Child Tree -