以下是字串比較和轉換一些要注意的地方。
字串比較
忽略大小寫的幾種選項:
| 選項 | 描述 | 用途 |
|---|---|---|
CurrentCultureIgnoreCase |
根據作業系統目前的區域性 (Culture) 設定(例如使用者使用的是繁體中文、德文或土耳其文)來決定字串的比對規則。 | 適合用在需要呈現給使用者、且符合當地語言習慣的文字比對。 |
InvariantCultureIgnoreCase |
基於英文語系的規則來處理字串比對,不受目前作業系統的區域性 (Culture) 設定(例如使用者使用的是繁體中文、德文或土耳其文)影響。 |
跨文化環境下需保持一致性邏輯的字串比對。 |
OrdinalIgnoreCase |
直接比對位元組程式碼的方式,執行速度更快且更安全。 |
系統內部識別碼或檔案路徑。 |
轉成 string 的兩種方式比較
Page.Theme = Session["SessionTheme"] as string;
Page.Theme = Session["SessionTheme"].ToString();
Session["SessionTheme"] as string 如果物件不是 string 型別,會回傳 null;如果物件本身是 null,則回傳 null。
Session["SessionTheme"].ToString()如果不是 string 型別,會嘗試輸出 string;如果物件本身是 null,則拋出 null exception。
參考:Difference between .ToString and “as string” in C# - Stack Overflow
