Вход на сайт
Написать класс для switch?
570 просмотров
Перейти к просмотру всей ветки
в ответ 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;
}
}
}
Прислушайтесь к советам общественности и пересмотрите дизайн. Если есть необходимость именно так писать - что-то у Вас в коде (или в комманде) не на своем месте.
Успехов!