class struct Equals

{
    class clsA
    {
        private int _i;
        public int I 
        {
            set { _i = value; }
            get { return _i; } 
        }
    }

    struct strctB
    {
        private int _i;
        public int I
        {
            set { _i = value; }
            get { return _i; }
        }
    }

    class Program
    {
        static void Main1(string[] args)
        {
            clsA a1=new clsA();
            a1.I=1;
            clsA a2=a1;
            a2.I=2;
            Console.WriteLine("{0},{1}", a1.I, a2.I);//2,2
            strctB b1=new strctB();
            b1.I = 1;
            strctB b2=b1;
            b2.I = 2;
            Console.WriteLine("{0},{1}", b1.I, b2.I);//1,2
        }
        static void Main(string[] args)
        {
            clsA a1 = new clsA();
            a1.I = 1;
            clsA a2 = new clsA();
            a2.I = 1;
            Console.WriteLine("{0}", a1.Equals(a2));//False
            strctB b1 = new strctB();
            b1.I = 1;
            strctB b2 = new strctB();
            b2.I = 1;
            Console.WriteLine("{0}", b1.Equals(b2));//True
        }
    }
}
原文地址:https://www.cnblogs.com/sky20080101/p/6731603.html