【发布时间】:2015-06-28 20:28:36
【问题描述】:
只是一个关于IComparable<T>.CompareTo() 方法的奇怪问题;我知道该方法需要根据比较返回正数、负数或零,但我在前两种情况下返回的结果真的很重要吗?换句话说,如果我返回 +1 或 +1000 会有什么不同吗?
【问题讨论】:
-
No.. 1、10、100、1000 是一样的。唯一重要的是符号(或 0)。我建议不要将
int.MinValue作为显式值返回。 -
@xanatos - 这真是个糟糕的建议。特别是当结果的一些创造性使用使用乘法时。这会导致溢出。单击来自@siride 的链接并注意
return 1; -
@HenkHolterman 任何将
CompareTo的结果相乘的人都应该得到发生在他/她身上的任何事情。或者甚至增加了它。那么,如果你想参加“混淆 C# 竞赛”,那就是另一个问题了。 -
@HenkHolterman 只是出于好奇...
((byte)255).CompareTo((byte)1) == 254on .NET 4.5(似乎与sbyte、short、ushort、char相同)跨度>
标签: c#