C# 使用==运算符比较值
我有一个静态方法,它只是比较两个值并返回结果C# 使用==运算符比较值,c#,C#,我有一个静态方法,它只是比较两个值并返回结果 public class Calculator { public static bool AreEqual(object value1, object value2) { return value1 == value2; } } bool Equal = Calculator.AreEqual("a", "a"); // returns true bool Equal = Calculator.AreE
public class Calculator
{
public static bool AreEqual(object value1, object value2)
{
return value1 == value2;
}
}
bool Equal = Calculator.AreEqual("a", "a"); // returns true
bool Equal = Calculator.AreEqual(1, 1); // returns false
有人能解释一下产生上述输出的幕后发生了什么吗运行时识别了
“a”
的字面用法,并检索了对所有这些用法的相同引用,从而生成了一个字符串对象,而不是预期的两个字符串对象
请尝试以下操作,而不是使用文字:
string A1 = new string(new char[] {'a'});
string A2 = new string(new char[] {'a'});
Calculator.AreEqual(A1, A2); // returns false
您在这里介绍的内容称为字符串实习。您可以在方法页面中找到更多信息