在c中,如何比较对象(带框的数字)和数字
本文关键字:数字 对象 何比较 比较 | 更新日期: 2023-09-27 18:21:31
我试图将对象值与数字进行比较,以避免生成错误,但我无法转换为更大的类型进行检查,这会导致转换错误。
注意:这个[字段]是一个对象,它有一个值,用户可以在绑定到字段的文本框上写入
将对象(即数字)与数值进行比较的最佳方法是什么?我必须将等式与[numberictype]进行比较。尝试分析每种可能的数字类型,或者可以为我建议一个最佳解决方案?感谢
示例:
...
case (int)SqlDbType.Int:
// Error: object and number not allowed...
if (this[field] < -2147483648 || this[field] > 2147483647)
ShowErrorMessageValueNotInRange();
break;
case (int)SqlDbType.Money:
// Error: cast not allowed...
if ((Int64)this[field] < -922337203685 || (Int64)this[field] > 922337203685)
ShowErrorMessageValueNotInRange();
break;
case (int)SqlDbType.BigInt:
// Error: cast not allowed...
if ((Int64)this[field] < -9223372036854775808 || (Int64)this[field] > 9223372036854775807)
ShowErrorMessageValueNotInRange();
break;
...
对象不能转换为数字类型,这对我来说似乎很奇怪。像这样的东西应该对你有用:
object value = this[field];
long longvalue = 0;
if(long.TryParse(value.ToString(), out longvalue)){
if (longvalue < -922337203685 || longvalue > 922337203685)
ShowErrorMessageValueNotInRange();
....
}
如果您面临的实际问题是用户在文本框中插入的数字太长,在这种情况下,只需知道您将无法处理该数字,就可以限制用户可以在该TextBox
中插入的字符数。