== 运算符(C# 参考)

本文详细介绍了C#中==运算符的工作原理及其在值类型和引用类型上的不同表现。通过具体示例展示了如何使用该运算符进行比较,并特别强调了在字符串和其他引用类型中的区别。

先给出微软的Demo例子,也可以下面的代码,链接如下:

== 运算符(C# 参考)

用法:

对于预定义的值类型,如果操作数的值相等,则相等运算符 (==) 返回 true,否则返回false。 对于string 以外的引用类型,如果两个操作数引用同一个对象,则== 返回true。 对于string 类型,== 比较字符串的值。

备注:

用户定义的值类型可重载 == 运算符(请参见operator)。 用户定义的引用类型也可重载 == 运算符,尽管在默认情况下,无论对于预定义的引用类型还是用户定义的引用类型,== 的行为都与上面描述的相同。 如果重载==,则还必须重载!=。 在枚举时通常允许整型运算。


关于  ==  我的总结   (==运算符对于值类型和引用类型的运算是不一样的)
1 值类型:比较操作数的值
  1.1 直接2个值类型的变量,直接进行==运算,就是直接比较值相等否
  1.2 2个值类型的变量转为object(object(变量名)),就是比较引用是否指向同一个对象,2个不同的变量的话返回false
2 引用类型
  2.1 String以外的引用类型  比较是否引用同一个对象
  2.2 String类型  比较字符串的值是否相等,主要是因为:String重载了==运算符

class Equality
    {
        static void Main()
        {
            // Numeric equality: True
            Console.WriteLine((2 + 2) == 4);

            // Reference equality: different objects, 
            // same boxed value: False.
            object s = 1;
            object t = 1;
            Console.WriteLine(s == t);

            // Define some strings:
            string a = "hello";
            string b = String.Copy(a);
            string c = "hello";

            // Compare string values of a constant and an instance: True
            Console.WriteLine(a == b);

            // Compare string references; 
            // a is a constant but b is an instance: False.
            Console.WriteLine((object)a == (object)b);

            // Compare string references, both constants 
            // have the same value, so string interning
            // points to same reference: True.
            Console.WriteLine((object)a == (object)c);
        }
    }
    /*
    Output:
    True
    False
    True
    False
    True
    */
微软的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值