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 の設計者はそうではないと考えました。彼らの考えは正しかったのです。