public virtual void RemoveAt(int index) {
if (index < 0 || index >= _size) {
throw new ArgumentOutOfRangeException("index");
}
…
}
实际上这里并不需要两次检查。如下的代码可以起到相同的作用:
public virtual void RemoveAt(int index) {
if ((uint)index >= _size) {
throw new ArgumentOutOfRangeException("index");
}
…
}
当然不到必要的时候不要使用这个Trick因为这会降低程序的可读性。
打印 | 张贴于 2004-07-17 08:20:00 | Tag:Performance
留言反馈
这个trick的原理是:如果在负数和正数间作无符号比较,负数比正数大。