Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用==运算符比较值_C# - Fatal编程技术网

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
您在这里介绍的内容称为字符串实习。
您可以在方法页面中找到更多信息