鉴于:
int onlyLastByteContainsValue = 35;
以下哪项更快,为什么?
byte valueInByte = BitConverter.GetBytes(onlyLastByteContainsValue)[3];
或者
byte valueInByte = (byte)onlyLastByteContainsValue;
后续问题: 上述两者之间是否存在其他差异?
答案 0 :(得分:2)
当然,演员阵容会更快,从我的分析到最高x5,优化关闭(甚至更优化)。
当然有不同的事情发生:
您的BitConverter
语句分配一个大小为sizeof(int)
的数组,用int值的所有字节填充它,然后索引数组以仅检索一个字节。不言而喻,这浪费了资源。
强制转换检查指定的值是否在byte
范围内(除非指定unchecked
),并将值的最低有效字节强制转换为byte