在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;         
...

在c中,如何比较对象(带框的数字)和数字

对象不能转换为数字类型,这对我来说似乎很奇怪。像这样的东西应该对你有用:

object value = this[field]; 
long longvalue = 0;
if(long.TryParse(value.ToString(), out longvalue)){
   if (longvalue < -922337203685 || longvalue > 922337203685)
        ShowErrorMessageValueNotInRange();
....
}

如果您面临的实际问题是用户在文本框中插入的数字太长,在这种情况下,只需知道您将无法处理该数字,就可以限制用户可以在该TextBox中插入的字符数。