如果你有一组相关的词(例如 Row & Column 或 On & Off),你如何找到描述这些词的集合词?具体来说,你如何命名一个枚举?
如果我有“红色”、“绿色”和“蓝色”,一个合理的枚举名称可能是“颜色”。“On”和“Off”的值可能有一个合理的枚举名称“Power”。但是如何命名可以具有“行”或“列”值的枚举?
“你如何命名行或列枚举?”的几个很好的答案。-笛卡尔和IndexType。
寻找一般的集体词怎么样 - 那里有任何资源,还是你只需要擅长英语/知道很多词?
尝试使用指示枚举用途的名称,例如
public enum CountMethod
{
Row,
Column
}
有一个名为 WordNet 的软件,它基本上将每个英语单词分类到一个复杂的类层次结构中,并为它构建了一个软件,它可以接收两个单词并返回它们最早的公共超类(wordnet 语言中的上位词)。
在这种情况下,查询单词 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
所以你知道,描述红色或蓝色最准确的方法是“彩色”
对于 (Row | Colum),我通常使用 'IndexType' 或类似的东西。正如我所见,行或列是同一数据结构中的两个不同索引。
我发现自己主要在编写基于表的数据结构时使用它. 然后,要执行特定于行或列的操作,您只需使用要使用的特定索引类型调用通用操作。
如果将其范围限定为一个类,则效果最好
Table.IndexType or Grid.IndexType (etc.)
我首先想到的是“笛卡尔”。如在
public enum Cartesian
{
Row, Column
}
这背后的原因是因为行/列最接近地表明了网格系统的笛卡尔坐标。
良好的英语词汇知识会对此有所帮助,但该语言中有大量的集体名词,即使是大多数以母语为母语的人也完全不知道。例如,有多少人恰好知道乌鸦的集体名词是“谋杀”?Sting 在他的歌曲“All This Time...”中使用了这个词,顺便说一句。
我最初建议笛卡尔坐标系是因为数学中类似于笛卡尔坐标系。辅助问题,关于集体词,本身就很有趣,所以为了任何可能想要了解这个范围的人的利益,来自维基百科:
也许那里有一些东西可能会触发一个好的枚举名称!
考虑如何使用它。您要描述哪些属性或属性?
您选择的术语应该反映这些值的实际使用。对于 API 的用户来说,它应该是自然的,并且在某种程度上是可以猜测的。
例如,这些可能非常好:
widget.IndexMethod = IndexMethod.Row
widget.CountBy = CountMethod.Column
按照同样的思路,我认为Cartesian
在大多数情况下这将是一个糟糕的选择。笛卡尔既不自然也不可猜测,除非您正在处理技术图形功能或其他东西。
另一种可能:
public enum Mapping
{
Row, Column
}
您需要一个描述枚举中各个元素的名称。例如,您的 Row、Column 示例或两个笛卡尔元素,因此笛卡尔将是一个好名字。如果您有一个硬件商店的零件列表作为枚举,那么它的好名称将是 HardwareStoreParts 等。如果您有一个诸如 之类的枚举shoes, graphs, elephants, blue, pluto, Martha Stewart
,那么您做错了什么。如果您想不出项目的术语,那么您可能正试图强制枚举适合它不适合的东西。
我尝试想出一个在实际使用枚举时最有意义的名称。根据上下文可能类似于:
Table.ROW
或者一些相当不同的东西,比如:
SortMode.ROW