2010-03-23 66 views
5

我在JAVA編程了和C都是我多年在大學,但現在我正在學習C#和建立一個小型應用程序,我發現故障與此:條件或C#

if (taxonType.Equals(null) ¦¦ taxonID == -1) 

我爲這個條件得到了一個紅色的下劃線,我不知道爲什麼,因爲根據我所看到的應該沒問題,但事實並非如此。有什麼我失蹤?

謝謝大家提前, 維克多


謝謝大家!我對此感到生氣。事情是,我是西班牙人,我習慣了管道鑰匙|完全在同一個地方|在美國的配置...我看到這個|奇怪的,但我認爲它是一樣的...

感謝您的快速回復! 維克多

+0

什麼確切的錯誤你得到描述 「紅色下劃線」? – Marek

回答

11
if (taxonType == null || taxonID == -1) 

修改爲正確的代碼,以及回答這個問題問

+2

正如在其他答案中已經說過,如果taxonType實際上是一個空引用,您的測試將拋出... – Seb

+1

代碼更新,最初回答問題而不是修復其餘的代碼。如果他發送的應用程序,我也可以完成;) – rrrr

4

我不知道類型的taxonTypetaxonID但它應該像這樣工作:

if (taxonType == null || taxonID == -1) 
5

什麼是'|'?你確定它和'|'是一樣的嗎?

+1

應該是一個評論。 –

+1

@菲利普有時一個問題比一個冗長的回答提供了一個更好的答案,尤其是如果原始問題的措辭不太明確(「我得到紅色下劃線」) – Marek

2

它看起來像你正在使用一些特殊字符,它不被識別爲默認管道(|)字符。也許你應該檢查你的鍵盤設置?

1

您應該使用「||」而不是「||」。

2

問題是如果taxonType真的是Null,那麼使用它的.Equals函數會拋出一個NullReferenceException。用==代替等於

2

如果taxonType實際上是空的,這將拋出一個異常,因爲你會試圖調用它的Equals方法。

如果你說如果(taxOnType == null)|| taxonID == -1)你會沒事的。

1

您對null的測試不應該使用.Equals,因爲如果對象爲null,則嘗試訪問成員將會拋出NullReferenceException

用途:

if (taxonType == null || taxonID == -1) 

這一點也不清楚,如果你使用了正確的管道字符|,爲你顯示爲¦

+0

是的,我試過平等,因爲taxonType是一個字符串,但我的第一次嘗試是你寫的代碼。當我不斷收到紅色下劃線時,我嘗試了不同的條件,看看我是否弄錯了......謝謝:) – vikitor

1

如果(String.IsNullOrEmpty(taxonType)|| taxonID < 0)

,並類羣爲結構

+0

String.IsNullOrEmpty僅用於字符串。我們不知道什麼類型的taxonType。此外,如果taxonType爲「」,則String.IsNullOrEmpty將返回true。這不是我們想要的行爲。改爲使用taxonType == null。 TaxonID <0是不夠的。 –

+0

taxonType是一個字符串,因爲我使用它來創建搜索表單,所以如果沒有選擇taxonType並且taxonID爲-1(如果在表單中沒有選擇taxonID),那麼我將taxonType設置爲null ...它只是爲了轉移控制流程。 無論如何,謝謝你的建議,它幫助我重新思考我的應用程序,我以前不知道或想到的工具:) – vikitor