2014-06-04

http://anond.hatelabo.jp/20140604153810

スレ主なんだけど、情報が足らなかったかな、と反省

NULL ならではの演算が含まれる振る舞い((NULL = NULL)はNULL、(FALSE=FALSE)はTRUE など)の特性をもつ場合にこそ、bool? を使いたいですね。

わたしの「スリステート」という言葉の発想が、デジタルIC の端子 HIGH(1),LOW(0),HIGH-Z(電気的切り離し)から来ていたから、そこをしっかり説明しておくべきだった。「スリステート」の言葉を直訳すれば3状態だけど、いくら3つの状態をもつからとて、なんでもbool?にはしないっすよ。大抵は私も列挙型を使いますね。しかしながら、値的に宙ぶらりんで集合演算にも参加しないような(しか存在はしている)値をNULLと解釈できる人が使えば、bool?やint?はとても有用かと(DBEXCELの空セルとも直交性がある)。そのあたりの意味がピンとこないようなら、手をださないほうがいいです。

ちょっとC系言語ポインタの話みたくなってきた...

記事への反応 -
  • ああいうDB構造のデータを保持する、C#のクラスで 人事画面使えるかどうかフラグは、bool?で定義すべきだって言ってるの。 boolにしたら、使えるか使えないかしか入らないから、未定義...

    • 状態が3つになった時点でenumのほうがいいじゃん。 ドライバの仕様でbool?が返ってくるとしたら定数にして if(人事画面使えるかどうかフラグ == AVAILABLE)「使えるよ! 開くよ!」else if(人...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん