有下面代码:
using System;public class CompareToTest {
    public static void Main() { string s1 ="a";
string s2 ="A";        // compare a string to itself
int cmpVal = s1.CompareTo(s2);
if (cmpVal > 0) 
  Console.WriteLine("S1>S2");
else if (cmpVal == 0 )
  Console.WriteLine("S1=S2");
    else
  Console.WriteLine("S1<S2");
Console.ReadLine();
    }}
结过是S1<S2,难道a 是97,A是65结过应该是S1>S2把?

解决方案 »

  1.   

    你的理解错了!CompareTo()是比较两个字符或者数字的函数,比较的时候不是根据它们的ASCII进行表示,如果是int型的就会有3种情况,要是String或者Char型的,就只有两种结果=0和<0
      

  2.   

    谢谢ufrshchenw的参与,我觉得你解释的不是很清楚,能详细点吗?
      

  3.   

    可以继承icompare类,重写compareto方法,使其根据字符的ascii码来进行比较。默认的比较方式是CompareMethod.text的。