public class MyClass
{
public enum MyMode { Mode1, Mode2 }
private MyMode _myMode = MyMode.Mode1;
public MyMode MyMode => _myMode; //не компилируется
}
Там каждый предлагает свой вариант решения и не понятно, какой правильный
Пытался читать Code convensions, но там тоже не понятно, что делать в такой ситуации.
В WinForms есть энамы
Можно просто сделать их не внутри класса и давать имена типа как у месседжбокса, уточняющие для чего оно, а в свойстве без этого. Енум SetupWizardState, а в классах про этот SetupWizard скорее всего хватит и просто State для свойства, если в нем вдруг нету кучи других стейтов (но тогда логично в нем давать более полные имена только этим свойствам, и имена для енумов определенных снаружи класса вроде могут совпадать с именем свойства, хотя и может быть менее удобно).
Ну как зачем? Он логически к этому классу относится. Без класса он был бы нафиг не нужен. Вот и получается, что энам должен быть в классе.
А вынос его за класс проблему темы не решает.
Так много про что сказать можно.
Наверняка куча других классов не нужны без какого-то класса (Order и User, Product, в сервисе продающем что-то зарегенным юзерам), но это ж не значит, что надо всё вкладывать в друг друга.
По-моему вкладывание в основном полезно только когда вложенный тип нужен только внутри (и private/protected).