枚举名称与类名冲突时该怎么办?

时间:2011-12-04 13:41:58

标签: c# naming-conventions

我有一个枚举音高和一个类音高,对我来说自然都应该这样命名,但是两者都有相同名称会令人困惑。当枚举的名称与班级类型发生冲突时,是否有任何指导原则?

实施例

public enum Pitch
{
    Fastball,
    Sinker,
    Curveball
}

public class Pitch
{
}

5 个答案:

答案 0 :(得分:6)

为枚举PitchType,PitchKind,PitchMagnitude,PitchQuality,PitchShape或其他最适合的名称命名。


另一个考虑因素是课程设计是否可以改进。您可以创建类层次结构,而不是在Pitch类中包含PitchType属性:

public abstract class Pitch {}

public class Fastball : Pitch {}

public class Sinker : Pitch {}

public class Curveball : Pitch {}

答案 1 :(得分:3)

使用命名空间以逻辑方式对它们进行分组。对于框架,类名是全名,可以是MusicPlayer.Notes.Pitch而不是Pitch。因此,不同名称空间中的类不会发生冲突。

答案 2 :(得分:3)

将enum嵌入课堂:

public class Pitch
{
    public enum Kind {
        Fastball, 
        Curveball, 
        Sinker
    }
}

然后您可以通过课程访问它:

Pitch.Kind.Fastball

答案 3 :(得分:1)

当枚举没有嵌入类中时,请确保在标签前使用一些不同的名称,以防止名称冲突。您也可以按照joey的建议使用名称空间。

答案 4 :(得分:0)

public class Pitch
{
    public enum Enum {
        Fastball, 
        Curveball, 
        Sinker
    }
}

Pitch.Enum.Fastball