我可以问一下,当我没有解决这个问题时可能会导致什么?
第二个问题是修复它的可能性。
我收到以下代码:
if (cb_vyber_cena.SelectedItem == "Jiná"){ cena_zaj = txt_jin_cena.Text;}
我收到以下警告:
可能的意外参考比较;得到一个价值比较, 施放左侧以输入'string'
答案 0 :(得分:8)
==
作为static
操作重载,而不是virtual
操作。如果SelectedItem
被输入object
,则只会执行引用相等检查。如果您打算将值作为字符串进行比较,则需要添加一个强制转换:
if ((string)cb_vyber_cena.SelectedItem == "Jiná") {
cena_zaj = txt_jin_cena.Text;
}
这将允许它使用==
类型重载的string
。请注意,如果您不确定SelectedItem
是否为string
,则可能还需要进行类型测试:
if ((cb_vyber_cena.SelectedItem as string) == "Jiná") {
cena_zaj = txt_jin_cena.Text;
}
或者,您可以使用virtual
的{{1}}实现:
Equals
注意我在左侧使用if ("Jiná".Equals(cb_vyber_cena.SelectedItem)) {
cena_zaj = txt_jin_cena.Text;
}
以避免"Jiná"
为SelectedItem
时出现问题。