2

请问如果我没有解决这个问题可能会导致什么?

第二个问题是修复它的可能性是什么。

我收到以下代码:

if (cb_vyber_cena.SelectedItem == "Jiná"){ cena_zaj = txt_jin_cena.Text;} 

我收到以下警告:

可能的意外参考比较;要进行值比较,请将左侧转换为“字符串”

4

1 回答 1

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实现Equals

if ("Jiná".Equals(cb_vyber_cena.SelectedItem)) {
    cena_zaj = txt_jin_cena.Text;
} 

请注意,如果is ,我"Jiná"在左侧使用以避免出现问题。SelectedItemnull

于 2013-09-09T14:00:18.813 回答