何らかの理由で、このステートメントは正常に機能しています。
vms.Where(vm => vm.MessageType == ValidationMessage.EnumValidationMessageType.Warning)
しかし、クラスの一番上にある場合は、(スペースを節約するために) エイリアスを定義します。
using MsgType = ValidationMessage.EnumValidationMessageType;
次に、結果のコード行:
vms.Where(vm => vm.MessageType == MsgType.Warning)
エラーが表示されます:
"デリゲート '
System.Func<ValidationMessage, int, bool>
' は引数を 1 つ取りません". それについて奇妙なのは、それが私が使用しているデリゲートではないということです。' System.Func<ValidationMessage, bool>
' のオーバーロードを使用してい.Where<>()
ます - エイリアスを使用していなかったときと同じです。
エイリアスが使用されている他の場所では正常に機能することに注意してください。これらの linq デリゲート内でのみ壊れます。なぜこうなった?