デリゲートと 2 つの一致するメソッドを作成しました。
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
ステートメントを使用してこの割り当てを行うことができ、問題なく機能します。しかし、よりコンパクトなバージョンを使用できない理由と、エラー メッセージがわかりません。このエラーの意味を知っている人はいますか?