#c_sharp
Есть метод и в него нужно предать заранее определённые "буквенные" варианты аргументов, для того что бы InteliSence давал подсказки того, что вобще можно ввести в это поле. Далее обработать это с помощью конструкции swich case. Как я это себе представляю, но не представлю как сделать что бы работало. public enum position { Director, Manager, Administrator, Secretary, Developer }; public float Salary (int position, int standing) { switch (position) { case Director: Console.WriteLine("Case Director"); break; case Manager: Console.WriteLine("Case Manager"); break; default: Console.WriteLine("Default case"); break; } return ...; } position в аргументных скобках никак не связан с enum. Класс должен выглядеть как то так. class Employee { private string name; private string lastName; public enum Position { Director, Manager, Administrator, Secretary, Developer }; Position position = Position.Developer; public Employee(string name, string lastName) { this.name = name; this.lastName = lastName; } public float Salary(Position position, int standing) { switch (this.position) { case Director: Console.WriteLine("Case 1"); break; case Manager: Console.WriteLine("Case 2"); break; default: Console.WriteLine("Default case"); break; } return; } }
Ответы
Ответ 1
Мне кажется, вы хотите добиться такого эффекта: public enum Position { Director, Manager, Administrator, Secretary, Developer }; static void Main(string[] args) { Position position = Position.Developer; Salary(position); } public static void Salary(Position position) { switch (position) { case Position.Developer: Console.WriteLine("Case Developer"); break; case Position.Administrator: Console.WriteLine("Case Administrator"); break; //и т.д. } } Если нужно принимать именно строку, то можно сделать так: public enum Position { Director, Manager, Administrator, Secretary, Developer }; static void Main(string[] args) { Salary("Developer"); } public static void Salary(string str) { Position position; var isValid = Enum.TryParse(str, out position); if (isValid) switch (position) { case Position.Developer: Console.WriteLine("Case Developer"); break; case Position.Administrator: Console.WriteLine("Case Administrator"); break; //и т.д. } } Адаптация под ваш класс: public enum Position { Director, Manager, Administrator, Secretary, Developer }; class Employee { private string name; private string lastName; Position _position = Position.Developer; public Employee(string name, string lastName) { this.name = name; this.lastName = lastName; Salary(_position, 5); } public float Salary(Position position, int standing) { switch (position) { case Position.Developer: Console.WriteLine("Case 1"); break; case Position.Manager: Console.WriteLine("Case 2"); break; default: Console.WriteLine("Default case"); break; } return 0; } }
Комментариев нет:
Отправить комментарий