なぜtypeof(string).FullName
がSystem.String
で、string
ではありませんか?同じことがint
、float
、double
、...なぜ 'typeof(string).FullName'は 'string'ではなく 'System.String'を指定していますか?
私はtypeof
は、指定されたタイプのためSystem.Type
オブジェクトを返していることを理解し、なぜstring
でもSystem.Type
対象にならないように、他の全ての「シンプル」タイプでありますか?
string
はC#言語の一部であり、System.Type
はシステムライブラリの一部ですか?
STRING'は 'ので、それはあります'System'名前空間にある' System.String'クラスのエイリアスです。 'typeof(string).Name'を使うと、クラス名' String'だけが得られます。 –
上記の_Tim Schmelter_のコメントに加えて、同じことがプリミティブについても言える: 'typeof(int).FullName'は' int'を返すが、 'typeof(Int32).FullName'は' System.Int32'を返す。 System.Stringとstringはまったく同じで、好みに基づいて使用されます。私は個人的にはフィールドに 'string'を使い、' String.Empty'や 'String.Format(...)'のような静的メソッド/定数には 'String'を使います。私はいつもすべてが同じであると思っていましたが、そのタイプのFullNameも異なっています。この質問のおかげで、今でも新しいことを学んだので。 :) –