Есть метод и в него нужно предать заранее определённые "буквенные" варианты аргументов, для того что бы 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;
}
}
Ответ
Мне кажется, вы хотите добиться такого эффекта:
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;
}
}
Комментариев нет:
Отправить комментарий