public void Foo(double d){
// when called below, d == 2^32-1
...
}
public void Bar(){
uint ui = 1;
Foo(0 - ui);
}
我希望在这里将0和ui都提升为有符号的longs。C#0(减号)uint =无符号结果?
真,用0字面是在编译的时候,强制转换为UINT安全可知,
但我想这一切似乎只是错误的。至少应该发出警告。
谢谢!
语言规范是否涵盖了这样的半含糊的情况?
这个问题等待Jon Skeet :) – 2012-03-01 23:06:38
不长:-) – 2012-03-01 23:11:46