1. ホーム
  2. .net

Convert.ToBoolean と Boolean.Parse が 0 と 1 を受け付けない

2023-08-11 22:46:44

質問

booleanをパースする際に、0/1を受け付けないことにしたのはなぜですか?

任意の整数型の値をパースするとき、パースされる数値文字列を受け付けます。(そして、もし .NET が "One hundred million two hundred and sixty five" という文字列をパースできるとしたら、私は驚きます)。

ブーリアンは何が特別なのでしょうか。私の経験では、それらは基本的に0が偽で、0以外が真ですが...。

このような文字列をパースするbclメソッドはありますか、そしてない場合、なぜですか?

注:文字列で "0" と "1" を指定するのを忘れていました。しかし、すでに int である場合は、私が予想したように動作するのが不思議です。おそらく、これが混乱を引き起こしたのでしょう。

どのように解決するのですか?

0 と (not-zero) は "false" と "true" と同じではなく、C 言語が選んだ表現方法です。 ブール型は ではない 0 や 1 ではなく、true や false です。

yes"と"no"、off"とon"、その他ブーリアンに類似した無数のものを扱うべきでしょうか? どこで線引きするのでしょうか?