事件的常量应该放在C#项目中的哪里

kac*_*123 4 c# oop events coding-style constants

我对C#非常陌生,我有一个常规问题:

应该在哪里存储与事件关联的常量?

它们应该包含在我定义EventArgs的相同位置吗?

作为解释,我想为名为"_difficulty"的私有字段定义不同的常量,并通过我重写的EventArgs类的构造函数来设置.

假设常量为,public const int EASY = 0,MEDIUM = 1,HARD = 2; (我假设命名约定是全部上限)

或者,我可以创建一个类似"DifficultyConstants"的类,然后将它们插入那里.

我只是对会议的内容感到好奇,并且对于遵循OOP最有意义.

mqp*_*mqp 12

惯例是不要这样做.您所描述的内容通常被实现为一组enum而不是一组命名的整数常量.


Mar*_*nix 7

因为你真的添加了EASY,MEDIUM,HARD这样的级别,它们是彼此的顺序级别,我希望enum能够使用它.就像在其他语言中一样,你可以使用public enum Difficulty {EASY, MEDIUM, HARD}.

但是你在哪里留下这样的枚举?如果你想在很多不同的eventArgs中使用它,我建议使用一些抽象基类:

public class LevelEventArgs : EventArgs
{
    public enum Difficulty
    { 
        EASY, 
        MEDIUM, 
        HARD 
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,让所有EventArgs继承自此类.