在C中,编译器知道原始数据类型,例如int,但在C#中,这些基本上是结构(例如System.Int32).但我可以假设C#知道这些类型.我认为它确实如此,因为C#中的int
文字基本上是System.Int32的一个实例.例如,这将工作:
Console.WriteLine((12345).GetType());
输出:
System.Int32
C#编译器知道原始数据类型.每当编译器遇到加法运算符a b时,它就会
调用一个合适的静态
方法运算符.
但是,如果操作数具有基本类型,则它会生成用于直接计算的IL代码.
但通常编译器和CLR都试图假装原始类型与其他类型相同.
另外,如前所述,编译器对某些基本类型使用别名,char,bool等.