【发布时间】:2017-03-10 17:42:51
【问题描述】:
这里,我不明白当我将字符串 ".doc" 与字符串 ".exe" 进行比较时,Compare 方法给出 -1 值并返回 false .它必须返回 True 和 1 值作为返回,因为我将其设置为 "==1"。
当我将字符串 ".exe" 与字符串 ".txt" 和字符串 ".exe" 进行比较时,它会给出有效的返回值。
谁能告诉我这里到底发生了什么?
int nDocValue = string.Compare(".doc", ".exe");
Console.WriteLine(nDocValue); // Will display -1
Console.WriteLine(string.Compare(".doc", ".exe") == 1); // False
int nTxtValue = string.Compare(".txt", ".exe");
Console.WriteLine(nTxtValue); // Will display 1
Console.WriteLine(string.Compare(".txt", ".exe") == 1); // True
int nExeValue = string.Compare(".exe", ".exe");
Console.WriteLine(nExeValue); // Will display 0
Console.WriteLine(string.Compare(".exe", ".exe") == 1); // False
【问题讨论】:
-
文档中的预期和描述究竟是什么? String.Compare 返回 0 表示相等,-1 表示较小,1 表示较大。这就是IComparable.Compare 的所有实现方式。
-
你有很多答案。如果要检查它们是否不同,则必须检查
Compare返回的内容是否与0不同 -
对不起,我认为如果等于则为真,否则为假。我的错。