5

如果你有一组相关的词(例如 Row & Column 或 On & Off),你如何找到描述这些词的集合词?具体来说,你如何命名一个枚举?

如果我有“红色”、“绿色”和“蓝色”,一个合理的枚举名称可能是“颜色”。“On”和“Off”的值可能有一个合理的枚举名称“Power”。但是如何命名可以具有“行”或“列”值的枚举?


“你如何命名行或列枚举?”的几个很好的答案。-笛卡尔和IndexType。

寻找一般的集体词怎么样 - 那里有任何资源,还是你只需要擅长英语/知道很多词?

4

9 回答 9

9

尝试使用指示枚举用途的名称,例如

public enum CountMethod 
{
    Row,
    Column
}
于 2009-05-14T21:17:00.127 回答
6

有一个名为 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

所以你知道,描述红色或蓝色最准确的方法是“彩色”

于 2009-05-14T21:51:03.023 回答
3

对于 (Row | Colum),我通常使用 'IndexType' 或类似的东西。正如我所见,行或列是同一数据结构中的两个不同索引。

我发现自己主要在编写基于表的数据结构时使用它. 然后,要执行特定于行或列的操作,您只需使用要使用的特定索引类型调用通用操作。

如果将其范围限定为一个类,则效果最好

Table.IndexType or Grid.IndexType (etc.)
于 2009-05-14T21:12:45.113 回答
2

我首先想到的是“笛卡尔”。如在

public enum Cartesian
{
   Row, Column
}

这背后的原因是因为行/列最接近地表明了网格系统的笛卡尔坐标。

于 2009-05-14T21:14:06.310 回答
2

良好的英语词汇知识会对此有所帮助,但该语言中有大量的集体名词,即使是大多数以母语为母语的人也完全不知道。例如,有多少人恰好知道乌鸦的集体名词是“谋杀”?Sting 在他的歌曲“All This Time...”中使用了这个词,顺便说一句。

我最初建议笛卡尔坐标系是因为数学中类似于笛卡尔坐标系。辅助问题,关于集体词,本身就很有趣,所以为了任何可能想要了解这个范围的人的利益,来自维基百科:

来自 AH 的集体名词

来自 IZ 的集体名词

也许那里有一些东西可能会触发一个好的枚举名称!

于 2009-05-14T21:30:58.593 回答
1

考虑如何使用它。您要描述哪些属性或属性?

您选择的术语应该反映这些值的实际使用。对于 API 的用户来说,它应该是自然的,并且在某种程度上是可以猜测的。

例如,这些可能非常好:

widget.IndexMethod = IndexMethod.Row
widget.CountBy = CountMethod.Column

按照同样的思路,我认为Cartesian在大多数情况下这将是一个糟糕的选择。笛卡尔既不自然也不可猜测,除非您正在处理技术图形功能或其他东西。

于 2009-05-14T21:36:36.660 回答
1

另一种可能:

public enum Mapping
{
   Row, Column
}
于 2009-05-14T21:36:45.663 回答
1

您需要一个描述枚举中各个元素的名称。例如,您的 Row、Column 示例或两个笛卡尔元素,因此笛卡尔将是一个好名字。如果您有一个硬件商店的零件列表作为枚举,那么它的好名称将是 HardwareStoreParts 等。如果您有一个诸如 之类的枚举shoes, graphs, elephants, blue, pluto, Martha Stewart,那么您做错了什么。如果您想不出项目的术语,那么您可能正试图强制枚举适合它不适合的东西。

于 2009-05-14T21:20:56.310 回答
1

我尝试想出一个在实际使用枚举时最有意义的名称。根据上下文可能类似于:

Table.ROW

或者一些相当不同的东西,比如:

SortMode.ROW
于 2009-05-14T22:15:37.363 回答