如果您有一组相关的字词(例如,行和列或开启和关闭),您如何找到描述这些字词的集体词?具体来说,你如何命名枚举?
如果我有“红色”,“绿色”和“蓝色”,则合理的枚举名称可能是“颜色”。 “开”和“关”的值可能具有合理的枚举名称“Power”。但是,如何命名可以具有“行”或“列”值的枚举?
“你怎么命名一行或一列枚举?”的几个好答案? - 笛卡尔和IndexType。
如何找到一般的集体词 - 那里有没有资源,或者你只需要擅长英语/知道很多单词?
答案 0 :(得分:9)
尝试使用表示枚举用途的名称,例如
public enum CountMethod
{
Row,
Column
}
答案 1 :(得分:6)
有一个名为WordNet的软件,它基本上对复杂类层次结构中的每个英语单词进行了分类,并为其构建了软件,可以使用两个单词并返回其最早的常用超类(wordnet语言中的hypernym)。
在这种情况下,查询单词red会返回类似
的内容red, redness
=> chromatic color, chromatic colour, spectral color, spectral colour
=> color, colour, coloring, colouring
=> visual property
=> property
=> attribute
=> abstraction, abstract entity
=> entity
查询蓝色
blue, blueness
=> chromatic color, chromatic colour, spectral color, spectral colour
=> color, colour, coloring, colouring
=> visual property
=> property
=> attribute
=> abstraction, abstract entity
=> entity
所以你知道,描述红色或蓝色的最准确方法是'彩色'
答案 2 :(得分:3)
对于(Row | Colum)我通常使用'IndexType'或类似的东西。正如我看到一行或多列是两个不同的索引到同一个数据结构中。
我发现自己主要使用它时,我正在编写基于表的数据结构时,它允许您编写绝大多数代码,而不管您是在行还是列上运行,只是在一系列索引中运行数据结构。然后,要执行行或列特定操作,只需使用要使用的特定索引类型调用泛型操作。
如果它的范围是一个类,那么它的效果最好
Table.IndexType or Grid.IndexType (etc.)
答案 3 :(得分:2)
我想到的第一件事是“笛卡尔”。如在
public enum Cartesian
{
Row, Column
}
这背后的原因是因为行/列最接近建议网格系统的笛卡尔坐标。
答案 4 :(得分:2)
良好的英语词汇知识对此有所帮助,但语言中有大量的集体名词,甚至大多数母语人士都完全不知道。例如,有多少人碰巧知道乌鸦的集体名词是“谋杀”? Sting在他的歌曲“All This Time ...”中使用了这个词,顺便说一下。
我建议使用笛卡尔,原因是数学中的模拟到笛卡尔坐标。关于集体词语的辅助问题本身就很有意思,所以对于任何想要解决这个问题的人来说,这都是维基百科:
也许有些东西可能会引发一个好的枚举名称!
答案 5 :(得分:1)
您需要一个名称来描述枚举中的各个元素。例如你的Row,Column例子或两个Cartesian元素,所以Cartesian将是一个很好的名字。如果你有一个硬件商店的部件列表作为枚举,它的一个好名字将是HardwareStoreParts等。如果你有一个像shoes, graphs, elephants, blue, pluto, Martha Stewart
这样的枚举,那么你做错了。如果你不能想到这些项目的术语,或许你试图强迫枚举适合它不适合的东西。
答案 6 :(得分:1)
考虑如何使用它。您想要描述哪些属性或属性?
您所关注的术语应反映实际使用的价值观。对于API的用户来说,这应该是自然的,并且有些猜测。
例如,这些可能非常好:
widget.IndexMethod = IndexMethod.Row
widget.CountBy = CountMethod.Column
同样地,我认为Cartesian
在大多数情况下都是一个糟糕的选择。笛卡尔式既不自然也不可猜测,除非你正在处理技术图形特征或其他东西。
答案 7 :(得分:1)
另一种可能性:
public enum Mapping
{
Row, Column
}
答案 8 :(得分:1)
我尝试提出一个在实际使用枚举时最有意义的名称。取决于可能类似的上下文:
Table.ROW
或者类似的东西:
SortMode.ROW