前言
以前就有提过 Enum Flags, 但平日不常用. 最近翻 Angular 源码, 发现它很多地方用到, 而且没有封装语义代码. 一堆符号真的看不惯啊...
于是又去复习了一遍, 熟悉熟悉. 顺便写一篇做记入呗.
这篇 C# 和 TypeScript 会一起讲.
参考
Enum, Flags and bitwise operators
Stack Overflow – What does the [Flags] Enum Attribute mean in C#?
介绍
Enum 大家都很熟悉了. 它就是 number (也有些场景会用 string 啦, 这篇我们 focus number 就好)
enum Status { Status0, Status1, Status2 } console.log(Status.Status0); // 0 console.log(Status.Status1); // 1 console.log(Status.Status2); // 2
那...如果我们要 Enum List 呢?
我们当然可以用 Array
const statusList: Status[] = [Status.Status0, Status.Status1]; if(statusList.includes(Status.Status0)) { // included } if(statusList.some(e => e === Status.Status0)) { // included }
但是有一种性能超级快的方式. 可以取代 Enum Array, 那就是利用二进制操作.
而这就是 Enum Flags 的核心.
标签:Status,TypeScript,Status0,C#,Enum,Flags From: https://www.cnblogs.com/keatkeat/p/17502804.html