Object类的用法(三)

本文通过实例演示了C#中字符串的各种操作方法,包括使用Clone、Copy方法进行字符串复制的区别,以及如何使用不同方法判断字符串是否相等。还探讨了基本类型与引用类型的比较方式,适合初学者和有一定基础的开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;
using System.Collections.Generic;
using System.Text;

namespace String._002
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = "Hello";
          string t = (string)s.Clone();   // 不复制;s 和 t 引用同一个字符串
           //相当于 string t = "Hello"也相当于string t = s;
          
            bool testbool = (object)s == (object)t;
            Console.WriteLine(testbool);   //true

            string u = string.Copy(s); // 进行复制,s 和 u 引用不同的对象
            Console.WriteLine(s == u);// true 判别str的值是否和strCopy的值是否相等//实际上是值比较

            Console.WriteLine((object)s == (object)u);// false 判别str所指的对象是否和strCopy所指的对象相同
            //实际上是比较两个引用是否相等,也是比较地址是否相等

            Console.WriteLine(Object.ReferenceEquals(s, t));// true 判别s所指的对象是否和t所指的对象相同
            //实际上是比较两个引用是否相等,也是比较地址是否相等

            Console.WriteLine(Object.ReferenceEquals(s, u));// false 判别s所指的对象是否和u所指的对象相同
            //实际上是比较两个引用是否相等,也是比较地址是否相等


            Console.WriteLine(s.Equals(t));   //true
            Console.WriteLine(Equals(s, t));  //true

            Console.WriteLine(s.Equals(u));   //true
            Console.WriteLine(Equals(s, u));  //true

            int a = 8;
            int b = 8;
            Console.WriteLine((object)a == (object)b);//false  比较的是引用
            Console.WriteLine(ReferenceEquals(a, b)); //false  比较的是引用
            Console.WriteLine(a.Equals(b));           //true   比较的是值和类型
            Console.WriteLine(Equals(a, b));          //true   比较的是值和类型
          

            string ret = string.Format("s same as t: {0}, s same as u: {1}",
               Object.ReferenceEquals(s, t), (object)s == (object)u);
            Console.WriteLine(ret);

            Console.ReadKey();


           

        }
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值