Joe*_*Fan 2 c# generics llblgenpro
我试图IComparer<object>使用代码调用一个期望参数类型的"排序"方法:
collection.Sort((IComparer<object>)Comparer<DateTime>.Default)
Run Code Online (Sandbox Code Playgroud)
它构建但在运行时我得到一个带有消息的InvalidCastException:
Unable to cast object of type
'System.Collections.Generic.GenericComparer`1[System.DateTime]'
to type 'System.Collections.Generic.IComparer`1[System.Object]'.
Run Code Online (Sandbox Code Playgroud)
怎么办?
如果您想要的只是默认比较,这将有效:
collection.Sort(Comparer<object>.Default)
Run Code Online (Sandbox Code Playgroud)
Comparer.Default使用对象的固有比较语义(即IComparable.CompareTo).