示例#1
0
        public static ComplexNumber Div(ComplexNumber leftNum, ComplexNumber rightNum)
        {
            // Проверка на 0 с использованием события!
            double eps = 1e-10;

            if (rightNum.Module < eps)
            {

                DivideByZeroEventArgs args = new DivideByZeroEventArgs();//Можно сразу при помоши угловых в момент создания своего объекта после вызвова констуркоора сразу можно запихать ссылки
                args.Division = leftNum;
                args.Divider = rightNum;
                leftNum.DivideByZero?.Invoke(leftNum, args);

                throw new ComplexNumberException("Divide by zero");
            }

            ComplexNumber res = leftNum * ComplexNumber.Conjugate(rightNum);
            return new ComplexNumber(res.Re / (Math.Pow(rightNum.Re, 2) + Math.Pow(rightNum.Im, 2)),
                                        res.Im / (Math.Pow(rightNum.Re, 2) + Math.Pow(rightNum.Im, 2)));
        }
示例#2
0
 static public void func(object obj, DivideByZeroEventArgs args)
 {
     Console.WriteLine("In func");
 }