我应该使用数据类型字面量吗?
本文关键字:数据类型 我应该 | 更新日期: 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或类似的。这包括字面值的字符串连接。
所以不,不用担心在这里是。