0

へのキャストが許可されている間は、キャストstringなどboolは不可能であることを私は知っています。(int)MyString (short)MyBoolintshort

残念ながら、私は説明を見つけることができませんでした。だからここで聞いてる。

一部のデータ型を明示的にキャストできないのはなぜですか (文字列を他の型などに変換する方法を尋ねているわけではありません)。

4

2 に答える 2

6

参照:キャストと型変換 (C# プログラミング ガイド)

明示的な変換 (キャスト): 明示的な変換にはキャスト演算子が必要です。キャストは、変換で情報が失われる可能性がある場合、または他の理由で変換が成功しない可能性がある場合に必要です。典型的な例としては、精度が低いか範囲が狭い型への数値変換や、基底クラスのインスタンスから派生クラスへの変換などがあります。

From:明示的な変換

一部のコンパイラでは、縮小変換をサポートするために明示的な変換が必要です。これは、変換を実行する言語固有の方法です。C# や C++ などの一部の言語では、キャストを使用して明示的な変換が実行されます。実行する変換の型を定義するデータ型を変換の前に付けると、キャストが発生します。Visual Basic では、CType 関数を使用して、暗黙的に許可されていないデータ型の明示的な変換を許可します。

于 2012-06-05T14:01:50.050 に答える
4

これは、言語設計者がプログラマーに変換の方法を選択させるために行った決定です。

この文字列をint:と見なします"4.99999999999999999999999999999999999999999999999999999999"。Int32の答えはどうあるべきですか?4または5

この文字列から日付への変換について考えてみます"5/8/12"。米国では、これはになりますがMay 8th、英国では、になりますAugust 5th

于 2012-06-05T14:04:46.117 に答える