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;
}
}
我已经尝试了一些转换和解析,但似乎都失败了。
你的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;
}
}