为什么不支持Convert.ToDouble(char)?

dad*_*686 20 c#

从msdn页面:

public static double ToDouble( char value )

参数

value
类型:System.Char要转换的Unicode字符.

返回值
类型:System.Double不支持此转换.没有返回任何值.

如果不支持,为什么首先实施?

Han*_*ant 5

它不是唯一的.转换.ToBoolean(char),ToDateTime,ToDecimal和ToSingle也不受支持,它们都像ToDouble一样抛出InvalidCastException.

这只是.NET设计试图让你摆脱困境.将char转换为整数类型是合理的,您可以查看Unicode映射表并计算代码点.但转换为布尔值意味着什么?什么Unicode代码点是真的?ToDateTime不需要解释.一个角色怎么可能是一个数值呢?没有半个或四分之一的代码点.

可以使它工作,首先转换为Int32然后转换为Double.但无论如何,请检查您的代码并确保它是一件有意义的事情..NET设计者认为它不是.他们是对的.

  • 有道理.然而`double doubleChar =(double)'a'; // OK`和`var doubleValue = Convert.ToDouble('a'); // InvalidCastException`有点不一致. (3认同)