Я создал делегат и два подходящих метода.
private delegate bool CharComparer(char a, char b);
// Case-sensitive char comparer
private static bool CharCompare(char a, char b)
{
return (a == b);
}
// Case-insensitive char comparer
private static bool CharCompareIgnoreCase(char a, char b)
{
return (Char.ToLower(a) == Char.ToLower(b));
}
Когда я пытаюсь назначить любой из этих методов делегату, используя следующий синтаксис (обратите внимание, что этот код находится в статическом методетот же класс):
CharComparer isEqual = (ignoreCase) ? CharCompareIgnoreCase : CharCompare;
Я получаю ошибку:
Невозможно определить тип условного выражения, поскольку не существует неявного преобразования между «группой методов» и «группой методов'
Я могу использовать обычный оператор if ... else
, чтобы выполнить это назначение, и оно работает просто отлично.Но я не понимаю, почему я не могу использовать более компактную версию, и я не понимаю сообщение об ошибке.Кто-нибудь знает значение этой ошибки?