Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

​Написать класс для switch?

11.01.19 15:37
Re: ​Написать класс для switch?
 
hbrenner прохожий
hbrenner
в ответ Murr 09.01.19 13:28

Здравствуйте,


Предлагаю сделать так:


abstract class ModelBase : System.Object {
    public ModelBase(): base() { }
}

class Model : ModelBase {
    public enum ModelType { R33, R34, R35 };

    protected ModelType _modelType;

    public ModelType getModelType() { return _modelType; } 

    public Model(ModelType modelType) : base() { _modelType = modelType; }
}

class ModelR33 : Model {
    public ModelR33() : base( Model.ModelType.R33 ) { }
}

class ModelR34 : Model
{
    public ModelR34() : base(Model.ModelType.R34) { }
}

class ModelR35 : Model
{
    public ModelR35() : base(Model.ModelType.R35) { }
}

class Program
{
    static void Main(string[] args)
    {
        ModelR33 mR33 = new ModelR33();
        ModelR34 mR34 = new ModelR34();
        ModelR35 mR35 = new ModelR35();

        Model currentModel = mR34;

        switch ( currentModel.getModelType() ) {
            case Model.ModelType.R33:
                Console.WriteLine("Current Model is R33");
                break;

            case Model.ModelType.R34:
                Console.WriteLine("Current Model is R34");
                break;

            case Model.ModelType.R35:
                Console.WriteLine("Current Model is R35");
                break;
        }
    }
}


Прислушайтесь к советам общественности и пересмотрите дизайн. Если есть необходимость именно так писать - что-то у Вас в коде (или в комманде) не на своем месте.


Успехов!

 

Перейти на