C#之枚舉以及Flags標簽
微軟文檔:https://docs.microsoft.com/zh-cn/dotnet/api/system.enum?view=net-5.0

說起枚舉,大家應(yīng)該都不陌生,這是個可以把參數(shù)名稱化而且還比直接用字符串更省空間的類.

如上圖所示,我們可以我們所需要的的值范圍手動設(shè)定,從而避免使用字符串帶來的一系列檢查,
如果沒有傳入正確的參數(shù),那么在編譯階段IDE也能盡早發(fā)現(xiàn)錯誤.
并且使用枚舉還可以很好的與Switch語句進行配合:

雖然枚舉可以方便快捷的用來分類,但是一般的枚舉只能表示單個屬性,如果一個老師非常厲害,能文能武,我們有辦法通過枚舉來給他設(shè)定標簽嗎?
答案是有的,我們可以使用[Flags]標簽來讓我們的枚舉可以同時選中多個狀態(tài):

相信看到這里,很多小伙伴一定馬上就想到了,這就是二進制,我們使用整型中的某一位,來表示其中一個屬性,并通過枚舉,給該屬性賦予了一個擁有可讀性的名字,需要注意的一點是,為了保證互斥,我們只能在其中一位設(shè)置值,不然就會導致枚舉的重合,以及目前只有4個字節(jié),而一個字節(jié)8位,所以非獨占枚舉頂多只有32個狀態(tài).
而在Unity中,我們就可以這么用:


看到這個多狀態(tài)枚舉,你有沒有想到什么東西呢?
標簽: