閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

type system unification

どうやら C# ではリテラルもオブジェクトになっているみたいですね。 C++/CLI でも一応そうなっているようです。


Console::WriteLine( (1).GetType()); // > System::Int32
Console::WriteLine( (1.23).GetType()); // > System::Double
Console::WriteLine( (true).GetType()); // > System::Boolean
//Console::WriteLine( ("a").GetType()); // > error

文字列リテラルは駄目らしい。全ての型で対応しているような雰囲気だったのに。

C# だと文字列もいけます。


Console.WriteLine(1.GetType()); // > System::Int32
Console.WriteLine(1.23.GetType()); // > System::Double
Console.WriteLine(true.GetType()); // > System::Boolean
Console.WriteLine("a".GetType()); // > System::String