Вызов метода с использованием тернарного оператора

Обыгрывая новые концепции, я наткнулся на Тернарный оператор , и он прекрасен. Поиграв с ним некоторое время, я решил проверить его пределы.

Однако мое веселье быстро закончилось, когда я не смог скомпилировать определенную строку кода.

int a = 5;
int b = 10;
a == b ? doThis() : doThat() 

    private void doThis()
    {
        MessageBox.Show("Did this");
    }
    private void doThat()
    {
        MessageBox.Show("Did that");
    }

Эта строка дает мне две ошибки:

Error   1   Only assignment, call, increment, decrement, and new object expressions can be used as a statement
Error   2   Type of conditional expression cannot be determined because there is no implicit conversion between 'void' and 'void'

Я никогда не использовал тернарный оператор , чтобы решить, какой метод вызвать, и я не знаю, возможно ли это вообще. Мне просто нравится идея однострочного оператора If Else для вызова метода.

Я провел небольшое исследование и не могу найти никаких примеров того, чтобы кто-либо делал это, поэтому я думаю, что могу надеясь на то, чего не может обеспечить.

Если это возможно, пожалуйста, просветите меня в моих неправильных поступках, и это невозможно, есть ли другой способ?

41
задан Daniel Daranas 25 June 2013 в 10:42
поделиться