2011-08-23 57 views
0
 if (submit.Content.Equals("Submit")) 

我試圖測試一個名爲submit =「submit」的按鈕中的內容。但是,此代碼不起作用。這種「意外參考比較」錯誤的解決方案是什麼?

+0

發現修正,更改代碼:如果(((字符串)submit.Content)= =「提交」) –

+0

你確定你以前沒有「==」嗎?使用Equals應該可以... –

回答

4

Content屬性的類型是Object,因此您將調用Object.Equals方法而不是String.Equals方法。字符串方法比較字符串值,而對象方法只比較引用。

你可以只適用於該方法的字符串,而不是使之成爲字符串比較,而不是引用比較:

if ("Submit".Equals(submit.Content)) 
+0

如果「提交」被攔截(你會期望它),不會Object.ReferenceEquals也返回true? – MattDavey

+1

@MattDavey:僅當內容中的字符串也被攔截時。 – Guffa

+0

如果它是一個完全相同的字符串,它也會是對實例實例的引用?或者你可以有兩個相同的字符串,其中一個是整合的,一個不是? – MattDavey

相關問題