这是我在我的ASP.net项目中的代码。我试图用我的web窗体将一些值存储到我的对象中,但它弹出一条错误消息:不能隐式地将类型'short'转换为'string'。将值传入对象时出错
textbox.Text = Convert.ToInt16(object.number);
lstbox.SelectedValue = Convert.ToInt16(object.ID);
在我的对象类中,我已经将我的变量声明为int。请让我知道什么是错的。
这是我在我的ASP.net项目中的代码。我试图用我的web窗体将一些值存储到我的对象中,但它弹出一条错误消息:不能隐式地将类型'short'转换为'string'。将值传入对象时出错
textbox.Text = Convert.ToInt16(object.number);
lstbox.SelectedValue = Convert.ToInt16(object.ID);
在我的对象类中,我已经将我的变量声明为int。请让我知道什么是错的。
Text
和SelectedValue
属性是字符串。为什么你会首先将这些值转换为short
?
textbox.Text = object.number.ToString();
lstbox.SelectedValue = object.ID.ToString();
您不能将非字符串值分配给接受字符串/文本值的属性。在你的情况下,你正试图给文本框的文本属性分配一个短的值。请使用Convert.ToString
或ToString()
将值转换为字符串。
所以,你的代码应该是
textbox.Text = Convert.ToString(object.number);
或
textbox.Text = object.number.ToString();
的情况是相同的,而分配列表框的设定值的属性。
lstbox.SelectedValue = Convert.ToString(object.ID);
由于您要将值传递给对象,因此您应该有对象的变量=输入值。
object.number = Convert.ToInt16(textbox.Text);
object.ID = Convert.ToInt16(lstbox.SelectedValue);
感谢您的帮助!您的两个代码都可以取消该错误,并且我的项目现在可以顺利运行。还有一个问题,我的对象现在是否具有字符串值变量或int? – DoesItMatter
不,您的对象的现有值不会改变,我们只是为了分配目的而转换值。 – TechDo