C#中关于String和new String的==、equals、referenceEquals

C#中关于String和new String的==、equals、referenceEquals

首先可以给出结论

  1. String虽然作为引用类型,但*==运算符*,比较的是值是否相等(new String和String一样)

  1. equals 也是同样比较的是字符串的值是否相等。
    也就是说,Equals和==在C#中比较的都是字符串的值,这与java不一样

  1. referenceEquals不管比较什么类型的数据,比较的永远是该数据类型的引用。

过程如下

 String s1 = "test";
            String s2 = "test";
            System.Console.WriteLine("s1和s2是同一个字符串" + (s1.Equals(s2)));//true
            System.Console.WriteLine("ReferenceEquals"+String.ReferenceEquals(s1,s2));//True

 
            String s3 = new String("test");
            System.Console.WriteLine("s1和s3是同一个字符串" + (s1.Equals(s3)));//true
            System.Console.WriteLine("ReferenceEquals"+String.ReferenceEquals(s1,s3));//False
            String s4 = "tes" + "t";
            System.Console.WriteLine("s1和s4是同一个字符串" + (s1.Equals(s4)));//true
            System.Console.WriteLine("s3和s4是同一个字符串" + (s3.Equals(s4)));//true
            System.Console.WriteLine("ReferenceEquals"+String.ReferenceEquals(s1,s4));//True
 
            String s5 = new String("test");
            System.Console.WriteLine("s3和s5是同一个字符串" + (s3.Equals(s5)));//true
            System.Console.WriteLine("ReferenceEquals"+String.ReferenceEquals(s3,s5))//False
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值