Ключ должен позвонить Integrate
перед использованием rad
. До тех пор, пока вы не используете rad
, пока не инициализируете его, все будет в порядке.
Любое поле в классе C # автоматически начинается со значения по умолчанию для этого типа, которое равно 0 для числового типа (int
, uint
, long
и т. Д.), false
для bool
и null
для любого ссылочного типа, включая массивы. Канонический способ решения этой проблемы - инициализация данных из конструктора. Так что вы могли бы сделать что-то вроде
public class MyData
{
public double[] rad
{
get;
private set;
}
public MyData(int start, int stop, double tar)
{
rad = new double[Math.Abs(start - stop)];
// More code here
}
// No need for an integrate method now - the work is done in the constructor
}
Таким образом, невозможно использовать rad
до его инициализации.
Если вы обнаружите, что перенос кода инициализации в конструктор не имеет смысла, вам, вероятно, нужно выполнить рефакторинг на два класса, чтобы у каждого класса было одно задание.