Как вызвать универсальные лямбда-выражения? - PullRequest
0 голосов
/ 30 июля 2010
private void ExecuteCommand(Expression<Func<bool>> command)
{
    bool success = command.Compile().Invoke();
}

private void Test()
{
    ExecuteCommand(() => _gc.ChargeCancellation(""));
}

С этим кодом я получил исключение NullReferenceException.

Ответы [ 3 ]

3 голосов
/ 30 июля 2010

Является ли _gc нулевым случайно?Или, может быть, ChargeCancellation само выбрасывает исключение?В противном случае он должен работать нормально.

2 голосов
/ 30 июля 2010

Просмотрите трассировку стека или добавьте точку останова в эту строку:

ExecuteCommand(() => _gc.ChargeCancellation(""));

Учитывая информацию, которую вы разместили, ни у кого в этом сообществе нет никаких шансов помочь вам, кроме общих комментариев.

1 голос
/ 30 июля 2010

Поскольку вы не указываете код для инициализации _gc, я предполагаю, что именно здесь происходит ваше исключение NullReferenceException.

Либо это, либо что-то внутри _gc.ChargeCancellation() вызывает исключение.* Может помочь, если вы включите полный текст Исключения, чтобы мы точно знали, куда выдается Исключение.

...