Windows窗体,要设置的值的数据类型为Int32.试图为值范围抛出异常

本文关键字:范围 抛出异常 Int32 窗体 设置 Windows 数据类型 | 更新日期: 2023-09-27 18:14:58

当在一个类中设置引用的属性时,由于将int转换为string,我不能抛出参数异常。对于如何解决这个问题感到困惑……

static private Int32 AttendeeRef;

static public string attendeeref
    {
        get
        {
            return AttendeeRef;
        }
        set
        {
            if(value <= 40000 && value >= 60000)
            {
                throw new ArgumentException("Attendee Ref must be between 40000 and 60000!");
            }
            AttendeeRef = value;
        }
    }

我已经尝试了一些转换和解析,但似乎都失败了。

Windows窗体,要设置的值的数据类型为Int32.试图为值范围抛出异常

你的getter应该是这样的:

    return AttendeeRef.ToString();

和setter:

    AttendeeRef = Int32.Parse(value);
至于为什么,string和int完全是两种不同的数据类型。您需要显式地在两者之间进行强制转换,因为编译器本身并不知道如何为您进行这些转换。

这个错误很明显。你有一个int字段,你正在获取/设置一个字符串属性。最好将类型从string改为int。

static private Int32 AttendeeRef;
static public int attendeeref
{
    get
    {
        return AttendeeRef;
    }
    set
    {
        if (value <= 40000 && value >= 60000)
        {
            throw new ArgumentException("Attendee Ref must be between 40000 and 60000!");
        }
        AttendeeRef = value;
    }
}