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))); }
static public void func(object obj, DivideByZeroEventArgs args) { Console.WriteLine("In func"); }