C# 动态比较异常
c# dynamic compare exception
我可以使用 dynamic 将 long 与 int 进行比较。
但我无法使用 dynamic.
将 ulong 与 int 进行比较
C# 动态错误?
无异常样本
long a = 10000;
int b = 10;
dynamic c = a;
dynamic d = b;
if (c <= d)
MessageBox.Show("c");
else
MessageBox.Show("d");
异常样本
ulong a = 10000;
int b = 10;
dynamic c = a;
dynamic d = b;
if (c <= d) <-Exception
MessageBox.Show("c");
else
MessageBox.Show("d");
你也不能比较 ulong
和 int
没有动态。这是真的,因为 ulong
没有到其他整数类型的隐式转换。
如果你尝试过,你会得到这个编译时错误:
Operator '<=' cannot be applied to operands of type 'ulong' and 'int'
这不是 C# 动态中的错误。这就是语言的设计方式。参考 Operator “>” cannot be applied to type 'ulong' and 'int' 了解更多信息
我可以使用 dynamic 将 long 与 int 进行比较。 但我无法使用 dynamic.
将 ulong 与 int 进行比较C# 动态错误?
无异常样本
long a = 10000;
int b = 10;
dynamic c = a;
dynamic d = b;
if (c <= d)
MessageBox.Show("c");
else
MessageBox.Show("d");
异常样本
ulong a = 10000;
int b = 10;
dynamic c = a;
dynamic d = b;
if (c <= d) <-Exception
MessageBox.Show("c");
else
MessageBox.Show("d");
你也不能比较 ulong
和 int
没有动态。这是真的,因为 ulong
没有到其他整数类型的隐式转换。
如果你尝试过,你会得到这个编译时错误:
Operator '<=' cannot be applied to operands of type 'ulong' and 'int'
这不是 C# 动态中的错误。这就是语言的设计方式。参考 Operator “>” cannot be applied to type 'ulong' and 'int' 了解更多信息