search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

[C#] 寫 enum 踩到的鍋,實在沒想到 ... | 不只是個工程師

enum 用的好,帶你上天堂!不但 code 好看易懂,而且還容易修改。
如果遇到善用 enum 的同事,絕對是你上輩子修來的福氣!
尤其在 visual C# 還有 attribute 可以讓 enum 產生更豐富的用途,然而捷徑走久了還是會碰到鬼 … 以下就是我碰鬼的經驗 …

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private enum Test
{
T1 = 5,
T2 = 5,
};

private void MyMethod()
{
Console.WriteLine($"{nameof(Test)}: {nameof(Test.T1)}.ToString() = {Test.T1}");
Console.WriteLine($"{nameof(Test)}: {nameof(Test.T2)}.ToString() = {Test.T2}");
}

///
/// Test: T1.ToString() = T1
/// Test: T2.ToString() = T1
///

有一天我寫了類似如上的 code,也就是 enum 裡面有兩組或以上都指向同樣的數值,結果就砸鍋了 …
就如上述 output,一旦將 enum 轉成 string or Parse by string name 的時候,都會優先找到同樣數值中的第一個 enum。
所以除非必要,否則真的是盡可能不要在同一組 enum 中編入同樣的數值,反向尋找時,會搞死自己的 …


✏以上就是本次寫 enum 砸鍋的經驗分享,
💡希望對正在閱讀的你也有幫助。
❓若有什麼疑問歡迎下方留言, 我會盡速回復您!


支持|不只是個工程師

若我的文章對您有幫助, 歡迎 請我喝杯咖啡

或是 訂閱「不只是個工程師」👍
也歡迎登入 LikeCoin,點擊下方拍手按鈕👇,免費支持 Leo!



熱門推薦

本文由 leotalk-engineerlifecom 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦