我应该使用数据类型字面量吗?

本文关键字:数据类型 我应该 | 更新日期: 2023-09-27 18:11:44

例如:

ulong someVariable = 1000;

"1000"将被编译器表示为int,正确吗?使用……会不会更好?

ulong someVariable = 1000UL;

这样可以避免强制转换吗?这是我该担心的事吗?

我应该使用数据类型字面量吗?

不,这不是你应该担心的事情。

在不太可能的情况下,任何编译器为这两种情况生成不同的代码,几乎无法想象会有任何值得担心的性能差异。这是最糟糕的不成熟和不必要的优化。不值得你浪费时间。

供参考,我已经确认,至少在vs2012微软的编译器在这两种情况下产生完全相同的代码。

IL_0000:  ldarg.0
IL_0001:  ldc.i4     0x3e8
IL_0006:  conv.i8
IL_0007:  stfld      uint64 ClassLibrary1.Class1::suffixed
IL_000c:  ldarg.0
IL_000d:  ldc.i4     0x3e8
IL_0012:  conv.i8
IL_0013:  stfld      uint64 ClassLibrary1.Class1::unsuffixed

在大多数情况下,编译器能够在编译过程中将右边的表达式转换为正确的形式,因此IL中的值是最直接的形式要验证这一点,您可以检查ildasm或类似的。这包括字面值的字符串连接。

所以不,不用担心在这里是
相关文章: