#c# #methods #constructor #c#-3.0 #complex-numbers
Вопрос:
Я искал способ вычисления сложения комплексных чисел и видел этот пример, но есть часть, которую я не понимаю. это весь код для этого класса:
class Complex
{
public int real, imaginary;
public Complex()
{
}
public Complex(int tempReal , int tempImaginary)
{
real = tempReal;
imaginary = tempImaginary;
}
public Complex addComp(Complex C1 , Complex C2)
{
Complex temp = new Complex();
temp.real = C1.real C2.real;
temp.imaginary = C1.imaginary C2.imaginary;
return temp;
}
}
Та часть, где это написано :
public Complex addComp(Complex C1 , Complex C2)
Мой вопрос в том, во-первых, является ли это конструктором или методом? и мой следующий вопрос: почему за addComp написано Complex? как это возможно и какой в этом смысл?
Комментарии:
1. addComp-это метод, который возвращает объект типа Complex и принимает два комплексных параметра: C1 и C2
2. Я бы сделал addComp статичным, потому что там не используются текущие данные экземпляра.
Ответ №1:
addComp
это метод, но очень плохо написанный!
Наблюдения:
addComp
должно быть либоstatic
и принимать два параметра, либо быть не —static
и принимать один; метод экземпляра не должен игнорироватьthis
значение, в большинстве случаевaddComp
почти наверняка должен быть двоичныйstatic
в приведенном выше сценарии (C# позволяет перегружать многие операторы, в том числеComplex
вероятно , должно быть areadonly struct
, а не aclass
— с подходящими операторами и перегрузками, поддержкойIEquatable<Complex>
и т. Дreal
иimaginary
должны быть свойствами, а не общедоступными полями