5

私は注意します

int number = 'a';

健全なC#ステートメントです

しかし、その表現

typeof(int).IsAssignableFrom(typeof(char))

falseを返します。これは矛盾ではありませんか?

4

2 に答える 2

13

これは矛盾ではありませんか?

いいえ。charC#はからへの暗黙の変換を提供しintますが、ドキュメントを見るとType.IsAssignableFrom、戻り値について次のように述べられています。

cと現在のタイプが同じタイプを表す場合、現在のタイプがcの継承階層にある場合、現在のタイプがcが実装するインターフェイスである場合、またはcが汎用タイプパラメータであり、現在のタイプが表す場合はtrue cの制約の1つ、またはcが値型を表し、現在の型がを表す場合Nullable<c>。これらの条件のいずれも真でない場合、またはcがnullの場合はfalse。

これらの条件はいずれも真ではないため、を返しますfalse

于 2013-03-06T17:16:12.057 に答える
1

あなたが尋ねている質問は少し異なります。C#の割り当て可能なのセットは、通常、CLR の割り当て可能なタイプのセットよりも許容度が高くなります。

于 2013-03-06T17:16:46.230 に答える