public class Complex
    {
        private double realPart, imaginaryPart;
        public double RealPart
        { get { return realPart; } set { } }
        public double ImaginaryPart
        { get { return imaginaryPart; } set { } }
        public  Complex(double realPart, double imaginaryPart)
        //构造复数函数
        {
            this.realPart = realPart; this.imaginaryPart = imaginaryPart;
        }
        
       
        //复数取模值//
        
        public static Double Modulus(Complex z)
        {
            double modular = new double();
            modular=Math.Sqrt(z.realPart*z.realPart+z.imaginaryPart*z.imaginaryPart);
            return modular;
        }
        public static Complex Conjugate(Complex z)
        //复数的共轭
        {
            return new Complex(z.realPart, -z.imaginaryPart);
        }
        //复数的加减乘除//
        private static Complex Add( Complex z1, Complex z2)
        {
            return new Complex(z1.realPart+z2.realPart,z1.imaginaryPart+z2.imaginaryPart);
        }
        private static Complex Subtract(Complex z1, Complex z2)
        {
            return new Complex(z1.realPart-z2.realPart,z1.imaginaryPart-z2.imaginaryPart);
        }
        private static Complex Multiply(Complex z1, Complex z2)
        {
            Complex z=new Complex (0,0);
             z.realPart=z1.realPart*z2.realPart-z1.imaginaryPart*z2.imaginaryPart;
             z.imaginaryPart=z1.imaginaryPart*z2.realPart+z1.realPart*z2.imaginaryPart;
             return z;
        }
        private static Complex Divide(Complex z1, Complex z2)
        {
             Complex z=new Complex (0,0);
             z.realPart=(z1.realPart*z2.realPart+z1.imaginaryPart*z2.imaginaryPart)/Modulus(z2);
             z.imaginaryPart=z1.imaginaryPart*z2.realPart-z1.realPart*z2.imaginaryPart/Modulus(z2);
             return z;
        }
        //加减乘除的重载//
        public static Complex operator +(Complex z1,Complex z2)
        {
            return Add(z1,z2);
        }
        public static Complex operator -(Complex z1, Complex z2)
        {
            return Subtract(z1, z2);
        }
        public static Complex operator *(Complex z1, Complex z2)
        {
            return Multiply(z1, z2);
        }
        public static Complex operator /(Complex z1, Complex z2)
        {
            return Divide(z1, z2);
        }
        //将复数转化成弧度表示形式//
        public double angle(Complex z1)
        {
            if (z1.realPart == 0)
            {
                if (z1.imaginaryPart > 0) return 90.0;
                else if (z1.imaginaryPart == 0) return 0.0;
                else return -90.0;
            }
            else if (z1.realPart < 0)
            {
                if (z1.imaginaryPart == 0) return 180d;
                else if (z1.imaginaryPart > 0) return Math.Atan(z1.imaginaryPart / z1.realPart) * 180d / Math.PI + 180d;
                else return Math.Atan(z1.imaginaryPart / z1.realPart) * 180d / Math.PI - 180d;
            }
            else return Math.Atan(z1.imaginaryPart / z1.realPart) * 180 / Math.PI;
        }
    }
红色字段报错

解决方案 »

  1.   

    其实报错之后,就在错误提示的时候,你就能看到究竟是哪个变量为null,然后一步一步倒退回去找为null的原因
      

  2.   

    z是空的  其实我想知道为啥Complex z 中的Complex与Class Complex中的Complex都是浅蓝色的,我想要是没颜色的啊  也就是z只是定义的一个复数而已
      

  3.   

    你说哪一句代码???
    public static Complex Conjugate(Complex z)