Convert.ToDouble(char) がサポートされていないのはなぜですか? 質問する

Convert.ToDouble(char) がサポートされていないのはなぜですか? 質問する

msdn ページから:

public static double ToDouble( char value )

パラメーター

価値
型: System.Char 変換する Unicode 文字。

戻り値
型: System.Double この変換はサポートされていません。値は返されません。

サポートされていないのであれば、そもそもなぜ実装されているのでしょうか?

ベストアンサー1

それだけではありません。Convert.ToBoolean(char)、ToDateTime、ToDecimal、ToSingle もサポートされていません。これらはすべて、ToDouble と同様に InvalidCastException をスローします。

これは、トラブルを回避するための .NET 設計です。char を整数型に変換するのは合理的で、Unicode マッピング テーブルを見てコード ポイントを数えることができます。しかし、ブール型に変換すると何を意味するのでしょうか。どの Unicode コード ポイントが True になるのでしょうか。ToDateTime には説明は必要ありません。文字がどのようにして整数型になるのでしょうか。分数値ですか? 半分または四分の一のコードポイントはありません。

あなたできる動作させるには、まずInt32に変換してからDoubleに変換します。ただし、必ずコードをチェックして、賢明なやるべきことではありません。.NET の設計者はそうではないと考えました。彼らの考えは正しかったのです。

おすすめ記事