Пример #1
0
        private static void Main()
        {
            var a   = 1;
            var b   = 2;
            var c   = a == b; //ceq
            var c11 = 1 == 2; //此方法直接被优化!

            b = a;
            a = 3;

            var z1 = new ComplexNum(100, 200);
            var z2 = new ComplexNum(100, 200);

            //比较引用符
            Console.WriteLine(ReferenceEquals(z1, z2) ? "引用符比较:它们是同一个复数" : "引用符比较:它们不是同一个复数");

            //静态版Equals()函数
            Console.WriteLine(Equals(z1, z2) ? "静态版比较,两个复数相等" : "静态版比较,两个复数不相等");
            //实例版Equals()函数
            Console.WriteLine(z1.Equals(z2) ? "实例版比较,两个复数相等" : "实例版比较,两个复数不相等");
            //“==”运算符
            Console.WriteLine(z1 == z2 ? "运算符比较,两个复数相等" : "运算符比较,两个复数不相等");

            z1 = z2;
            Console.WriteLine("--------");

            var c1 = new Complex(100.1, 200.2);
            var c2 = new Complex(100.1, 200.2);

            //var a = ReferenceEquals(c1, c2);//内部的 == 非下面的 == ,下面的 == 是operator重载
            //var b = c1 == c2;

            Console.WriteLine($"c1 is ValueType?:{c1 is ValueType isValueType}");
            //比较引用符
            // ReSharper disable once ReferenceEqualsWithValueType
            Console.WriteLine(ReferenceEquals(c1, c2) ? "引用符比较:它们是同一个复数" : "引用符比较:它们不是同一个复数");
            //静态版Equals()函数
            Console.WriteLine(Equals(c1, c2) ? "静态版比较,两个复数相等" : "静态版比较,两个复数不相等");
            //实例版Equals()函数
            Console.WriteLine(c1.Equals(c2) ? "实例版比较,两个复数相等" : "实例版比较,两个复数不相等");
            //“==”运算符
            Console.WriteLine(c1 == c2 ? "运算符比较,两个复数相等" : "运算符比较,两个复数不相等");


            List <ComplexNum> list = new List <ComplexNum>();



            Console.ReadKey();
        }
Пример #2
0
 protected bool Equals(ComplexNum other)
 {
     return(_imaginaryPart.Equals(other._imaginaryPart) && _realPart.Equals(other._realPart));
 }