Я попытался создать выражение switch с помощью System.Linq.Expressions:
var value = Expression.Parameter(typeof(int));
var defaultBody = Expression.Constant(0);
var cases1 = new[] { Expression.SwitchCase(Expression.Constant(1), Expression.Constant(1)), };
var cases2 = new SwitchCase[0];
var switch1 = Expression.Switch(value, defaultBody, cases1);
var switch2 = Expression.Switch(value, defaultBody, cases2);
но в последней строке я получаю ArgumentException:
Требуется непустая коллекция. Имя параметра: случаи
В чем причина этого исключения? Возможно, это ошибка в Expression.Switch(...)?
В С# переключатель только с "по умолчанию" является правильным:
switch(expr) {
default:
return 0;
}//switch
UPD: я отправил проблему в репозиторий CoreFX на GitHub