我在思考C#中string.Compare()
方法的数学原理。
两个不相等的字符串是否可能在此方法调用时返回0?
我指的是真正不相等的字符串,如"Herp"和"Derp",而不是"Herp"和"Hěrp"。
不幸的是,除了基本的空值情况外,string.Compare
的源代码都是.NET之外的内部内容。
我认为这里是实际使用的C++代码,但很难确定。
我正在考虑以下情况:
- 奇怪的顺序行为(只是导致相等的字符串排列组合)
- 溢出整数,导致比较结果为正数和负数,从而得到0
- 其他任何一个比我更熟悉
mscorlib
实现的人能想到的疯狂情况
我提出这个问题没有特定的原因 - 只是出于好奇。而且我以前没有看到过有人在C#中问这个问题!
String.Compare("ss", "ß", false, CultureInfo.InvariantCulture) == 0
。 - Guffa