Я хотел бы объявить «пустое» лямбда-выражение, которое ничего не делает. Есть ли способ сделать что-то подобное без использования DoNothing()
метода?
public MyViewModel()
{
SomeMenuCommand = new RelayCommand(
x => DoNothing(),
x => CanSomeMenuCommandExecute());
}
private void DoNothing()
{
}
private bool CanSomeMenuCommandExecute()
{
// this depends on my mood
}
Я намерен сделать это только для управления включенным / отключенным состоянием моей команды WPF, но это в сторону. Может быть, для меня это слишком рано утром, но я полагаю, что должен быть способ просто объявить x => DoNothing()
лямбда-выражение каким-то образом, чтобы выполнить то же самое:
SomeMenuCommand = new RelayCommand(
x => (),
x => CanSomeMenuCommandExecute());
Как это сделать? Просто кажется ненужным метод бездействия.
noop
и я ожидал, что что-то подобное будет присутствовать в C #.Func<Task> doNothing = async() => await Task.CompletedTask;
?Это старый вопрос, но я подумал, что добавлю код, который считаю полезным для такого типа ситуаций. У меня есть
Actions
статический класс иFunctions
статический класс с некоторыми базовыми функциями в них:Я считаю, что это немного улучшает читаемость:
источник
Это должно работать:
источник
Предполагая, что вам нужен только делегат (а не дерево выражений), это должно сработать:
(Это не будет работать с деревьями выражений, поскольку у них есть тело оператора . Подробнее см. В разделе 4.6 спецификации C # 3.0.)
источник
Я не совсем понимаю, зачем вам метод DoNothing.
Разве ты не можешь просто сделать:
источник
new RelayCommand(..
.