==:
值类型和string类型比较的是对象的值是否相等。
除string类型以外的引用类型比较的是在栈中存储的地址是否相等。
equal:
值类型和string类型比较的是对象的值是否相等。
除string类型以外的引用类型比较的为是否同一引用对象。
string类型为什么会不同于其他引用类型,因为string类型重新定义过==和equal方法:
public static bool operator ==(string a, string b);
public override bool Equals(object obj);
public bool Equals(string value);
public static bool Equals(string a, string b);
public bool Equals(string value, StringComparison comparisonType);
public static bool Equals(string a, string b, StringComparison comparisonType);