2014-10-22 58 views
0

布爾變量我有以下方法:如何得到默認情況下,即「假」

private String getLicenseID(String arglicenseID, bool istrue) 
    { 
     String licenseID = arglicenseID; 

     if (licenseID != null) 
     { 
      licenseID = licenseID + " " + istrue; 
     } 
     return licenseID; 
    } 

當我調用該函數我通過istrue爲假。

的問題是,在調試時,istrue的值爲「假」(注意,「F」是小寫),但是當我檢查的licenseID返回值,我看到級聯的licenseID的「假」(」 F「是大寫)。

我的要求是得到licenseID +「false」。雖然我可以在獲取字符串後更改案例,但還有其他解決方案嗎?有人可以向我解釋爲什麼會發生這種情況嗎?

+9

有史以來布爾參數的最佳名稱:p – 2014-10-22 07:21:26

+0

這就是調試器和bool.toString()的實現方式。如果你需要一個全小寫的字符串表示,你必須自己處理。 – Niko 2014-10-22 07:24:57

回答

4

真和假是.NET中的布爾值的正常string conversion。你所看到的(真和假)是調試器的值。只需在字符串轉換布爾值上使用ToLower方法即可。

該方法返回常量「True」或「False」。請注意,XML是 區分大小寫,並且XML規範將「true」和 「false」識別爲有效的布爾值集合。如果要將ToString()方法返回的String對象 寫入XML文件,則應首先調用其 String.ToLower方法將其轉換爲小寫的 。

4

bool變量只是轉換爲字符串,並使用string.ToLower方法:

licenseID += " " + istrue.ToString().ToLower(); 
1

不要依賴於自動字符串轉換。相反,只寫你需要什麼:

(isTrue ? "true" : "false") 

(理想情況下,你就會有一個輔助方法,爲你做的,或者你想使用常量,而不是字符串文字)

這來源於這樣的事實IL的布爾值爲TrueFalse。小寫變體是C#的關鍵字,它們基本上是「真正的」bool值的別名。

你可以看到發生同樣的事情,例如, string.GetType().Name - string是名爲System.String的類型的C#別名。