To nie jedyny. Convert.ToBoolean (char), ToDateTime, ToDecimal i ToSingle również nie są obsługiwane, wszystkie rzucają InvalidCastException, jak to robi ToDouble.
To tylko projekt .NET, który próbuje zapobiec kłopotom. Konwersja znaku na typ integralny jest uzasadniona, można przejrzeć tabele odwzorowań Unicode i policzyć współrzędne kodowe. Ale co oznacza konwersja na Boolean? Co to jest kod Unicode True? ToDateTime nie wymaga żadnego wyjaśnienia. W jaki sposób postać może być wartością ułamkową? Nie ma pół ani czwartych współrzędnych kodowych.
Możesz może sprawiają, że działa, konwertuj na Int32 pierwszy, a następnie przekonwertować do Double. Ale na wszelkie sposoby, sprawdź swój kod i upewnij się, że jest to coś, co warto zrobić. Projektanci .NET uważali, że tak nie jest. Mają rację.
Prawdopodobnie dlatego, że musiał być, dla niektórych interfejsów, IConvertible, może? Lub po prostu zachować standard.Nie pozwól mu tego przegapić i poszukaj - ale powiedz "tu jest, nie używaj tego" – SimpleVar
@YoryeNathan 'Convert' jest klasą statyczną, nie implementuje żadnych interfejsów. 'Char' implementuje' IConvertible', a * jego * 'ToDouble' jest do tego wymagane, ale' Konwertuj' nie potrzebuje tego. Twoja alternatywa "zachować standard" może mieć rację. – hvd
@hvd Masz rację. To było dla mnie głupie. – SimpleVar