私は注意します
int number = 'a';
健全なC#ステートメントです
しかし、その表現
typeof(int).IsAssignableFrom(typeof(char))
falseを返します。これは矛盾ではありませんか?
私は注意します
int number = 'a';
健全なC#ステートメントです
しかし、その表現
typeof(int).IsAssignableFrom(typeof(char))
falseを返します。これは矛盾ではありませんか?
これは矛盾ではありませんか?
いいえ。char
C#はからへの暗黙の変換を提供しint
ますが、ドキュメントを見るとType.IsAssignableFrom
、戻り値について次のように述べられています。
cと現在のタイプが同じタイプを表す場合、現在のタイプがcの継承階層にある場合、現在のタイプがcが実装するインターフェイスである場合、またはcが汎用タイプパラメータであり、現在のタイプが表す場合はtrue cの制約の1つ、またはcが値型を表し、現在の型がを表す場合
Nullable<c>
。これらの条件のいずれも真でない場合、またはcがnullの場合はfalse。
これらの条件はいずれも真ではないため、を返しますfalse
。
あなたが尋ねている質問は少し異なります。C#の割り当て可能な値のセットは、通常、CLR の割り当て可能なタイプのセットよりも許容度が高くなります。