ComboBoxEdit encoderCombo =
{
if (slot==1) return cmbEncoder1;
else if (slot==2) return cmbEncoder2;
else if (slot==3) return cmbEncoder3;
else return cmbEncoder4;
};
ответ
Почему бы не просто вставить все это и избавиться от анонимного метода?
ComboBoxEdit encoderCombo = slot == 1 ? cmbEncoder1 :
slot == 2 ? cmbEncoder2 :
slot == 3 ? cmbEncoder3 :
cmbEncoder4;
Если вы действительно должны использовать анонимный метод, вы могли бы сделать что-то похожее на это:
Func<ComboBoxEdit> encoderCombo =() =>
slot == 1 ? cmbEncoder1 :
slot == 2 ? cmbEncoder2 :
slot == 3 ? cmbEncoder3 :
cmbEncoder4;
Что будет фиксировать значение slot
в замыкании (что может привести к непредсказуемому поведению, как все становится более сложный).
Я практикую анонимные методы, потому что они не хотят попасть в мою клавиатуру, поэтому я хочу использовать их как можно больше :) –
@ Daniel - «они не хотят попасть в мою клавиатуру» ??? И это не имеет никакого смысла! –
+1 для inline. Здесь нет необходимости анонимного метода. – tobsen
Если это C#, то это не действительная анонимная функция.
Func<ComboBoxEdit> encoderCombo = delegate {
if (slot==1) return cmbEncoder1;
else if (slot==2) return cmbEncoder2;
else if (slot==3) return cmbEncoder3;
else return cmbEncoder4;
};
вы можете избавиться от elses – nan
Это будет справедливо, если вы замените
ComboBoxEdit encoderCombo=
с
Func<ComboBoxEdit> encoderCombo =() =>
Примечание - C# 3.0 и выше.
Ну, вы могли сделать это следующим образом:
ComboBoxEdit encoderCombo = new Func<ComboBoxEdit>(() =>
{
if (slot==1) return cmbEncoder1;
else if (slot==2) return cmbEncoder2;
else if (slot==3) return cmbEncoder3;
else return cmbEncoder4;
}).Invoke();
Это вид отвратительный, хотя;)
- 1. Анонимный класс не работает
- 2. JavaScript Анонимный метод
- 3. C# анонимный метод/блок?
- 4. Анонимный метод с возвращением
- 5. Почему этот анонимный метод не работает во время лямбды?
- 6. Почему мой анонимный метод не работает в цикле?
- 7. Анонимный метод кратчайшего синтаксиса
- 8. Несоответствующий анонимный метод define()
- 9. Анонимный метод анонимного типа не разрешен?
- 10. Анонимный метод в назначении хэша
- 11. Почему я не могу использовать анонимный метод?
- 12. тип делегата не удается преобразовать анонимный метод
- 13. Простой анонимный метод в C#
- 14. Lambda анонимный метод в messagebox.show
- 15. Анонимный метод как результат функции
- 16. метод, что возвращение анонимный объект
- 17. Анонимный метод в вызове Invoke
- 18. возвращаемое значение формы анонимный метод
- 19. getPrincipal() метод возвращает анонимный пользователь
- 20. Как написать общий анонимный метод?
- 21. Статический анонимный вызов PHP не работает
- 22. анонимный класс не абстрактный и не переопределяет абстрактный метод
- 23. Анонимный метод для обработчика событий в цикле
- 24. Как исключить анонимный внутренний метод из pointcut?
- 25. Анонимный метод с переменным числом параметров аргумента
- 26. Как создать анонимный метод, который возвращает void?
- 27. Анонимный метод как параметр для BeginInvoke?
- 28. CodeDom - могу ли я создать анонимный метод?
- 29. Как разбить WinDbg на анонимный метод?
- 30. сделать анонимный класс статическим - через статический метод
Какой язык это? .NET не является языком, и если это должно быть C#, тогда, ну, многие вещи ошибочны :-) –
Это C#, или, по крайней мере, я заставляю это быть :) –
Ну, это далеко от C#. Начните с описания того, что вы пытаетесь сделать, укажите какой-то контекст, какое сообщение об ошибке вы получаете, что-то вроде этого ... –