|
|
1
41
使用Flags枚举的好处:
使用标志枚举的负数:
使用位串的负数:
例如,您可能会看到:
|
|
|
2
23
您不应该创建非标准数据结构来替换标准数据结构(在本例中,是dayofweek内置枚举)。而是扩展现有结构。这基本上与您所说的位标志方法的工作方式相同。
现在您可以执行以下操作:
|
|
|
3
6
创建一个可以包含工作日组合的类。在类内部,您可以用任何一种方式表示数据,但我肯定会使用标志枚举,而不是字符串。在类外部,您只使用枚举值,实际逻辑封装在类中。 类似:
使用实例:
|
|
|
4
1
问题应该围绕着人类的眼睛是否真的能看到这个存储值。如果是这样的话,那么某种人类可读的格式显然是很重要的(尽管如此,我会为更大的内容(如实名数组)做一个论证)。 然而,至少在我所构建的所有应用程序中,这种数据都会进入一个很小的领域,再也看不到,除非通过C代码——这意味着位标记绝对是最简单的——它们是人类可读性最高的。 在代码中 . 您的同事确实希望编写一个字符串分析器,将0和1映射到值,而不是使用 内置的 和 使用40年以上 位运算的概念? |
|
5
0
有趣的是,这两种方法完全相同;只有Flags方法更明显。 我个人会带上旗子(尽管可能,根据您的型号,最好将列表存储为一个列表来对抗持有它的人)。 --编辑 我想,要清楚的是,绩效真的不需要考虑你在做什么。所以只要用最可读的。(imho是指名旗)。 |
|
|
6
0
标志方法是惯用的(也就是经验丰富的程序员所做的和习惯于看到和做的,至少在C/C++/C语言中)。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |