#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; } }
Комментариев нет:
Отправить комментарий