Можно ли определить, какой случай в настоящее время оценивается? Что-то вроде этого примера кода:Как определить текущий случай в инструкции switch?
const int one = 1;
const int two = 2;
int current_num = 1;
switch (current_num){
case one:
case two:
WriteLine(current_case) //outputs 'one'
break;
}
Я считаю, что я мог бы получить сложно, и использовать словарь или что-то, чтобы посмотреть на current_num
когда я начал WriteLine
, но может быть встроенный способ, чтобы получить имя текущего оцениваемого события.
Редактировать: Короткий ответ, это невозможно. Проверьте ответ JonSkeet на правдоподобную альтернативу.
Это недействительно C# для начала, поскольку выражения 'case' могут быть только константами. Я думаю, вы пытаетесь сделать что-то, чего на самом деле не существует ... –
@JonSkeet: true, но если вы замените «один» на 1 и т. Д., Это все равно интересный вопрос imho. Хотя я очень сомневаюсь, что это возможно без использования какого-либо метода ткачества или другого постобработки. – Alxandr
@Alxandr: Если вы замените «один» на 1, то почему бы просто не использовать 'WriteLine (current_num)'? На самом деле непонятно, чего пытается добиться OP - я опубликовал ответ, который * может * помочь, но мы могли бы действительно сделать с большей ясностью. –