今天,我正在阅读 == 运算符、Equal 函数和 Object.ReferenceEqual 方法。
- 运算符 == 用于检查相等引用。
- Equal Method - 它用于检查相等的值。
- Object.ReferencEqual – 用于检查相等引用。
我创建了一个测试控制台应用程序。我有几个问题。如果你给我所有的答案,这对我会有帮助。
class Program
{
static void Main(string[] args)
{
int intValue = 5;
string strValue = "5";
Console.WriteLine(string.Format("{0} ", intValue.ToString() == strValue));// Output is TRUE
Console.WriteLine(string.Format("{0} ", intValue.Equals(strValue))); // Output is FALSE
Console.WriteLine(string.Format("{0} ", intValue.ToString().Equals(strValue))); // Output is TRUE
Console.WriteLine(string.Format("{0} ", object.ReferenceEquals(intValue, strValue)));// Output is FALSE
Console.WriteLine(string.Format("{0} ", object.ReferenceEquals(intValue.ToString(), strValue)));// Output is FALSE
Console.Read();
}
我在输出中有五行。
第 1 行 – 输出为真。
据我所知,我在这里进行铸造。所以我得到了 TRUE 作为 == 运算符检查参考。
第 2 行 – 输出为 False。
问题 1. 对象的相等函数校验值。在这里,我们有相同的价值,但我得到了 False。为什么?
第 3 行 – 输出为真。
问题 2. 我在这里进行铸造,所以我得到了 True。为什么?
第 4 行。输出为 False。
据我所知,这两个对象都是不同的类型。所以,我越来越错了。
第 5 行。输出为 False。
问题 3. 我在这里进行铸造,但我仍然得到 False。为什么?
问题 4. == 运算符和 Object.ReferenceEqual 有什么区别?