Я создал enum, чтобы выбирать между различными вариантами. На последнем этапе я получаю обратно выбранное перечисление.
Но что-то не так с моим выражением регистра.
Enum:
public enum class MyObjForm { Rechteck, Ellipse };
Die Klasse:
public ref class Fenster2: public System::Windows::Form{
private: MyObjForm ^ form;
double breite;
double hoehe;
Fenster2(MyObjForm ^ obj, double h, double b) : form{ obj }, hoehe { h }, breite{ b }
{
InitializeComponent();
}
..
}
Корпус переключателя:
switch (form) {
case MyObjForm::Rechteck:
gr->DrawRectangle(pen, 30.0f, 30.0f, breite, hoehe);
break;
case MyObjForm::Ellipse:
gr->DrawEllipse(pen, 30.0f, 30.0f, breite, hoehe);
break;
}
Visual Studio говорит, что в switch (форме) есть ошибка, это должен быть целочисленный тип или тип перечисления.
Но, кроме того, что это говорит: выражение переключателя типа "MyObjForm ^" не разрешено.
И константные выражения не верны.
Я не вижу правильного ответа, но я не люблю переходить с класса enum на enum. Класс существует, чтобы защитить его, поэтому я думаю, что он должен быть там, даже если бы было проще без него. Я использую enum, чтобы узнать, как его использовать.