Я хотел бы определить структуру, которая включает в себя StopWatch, а затем массив struct.Структуры не могут содержать явные конструкторы без параметров
struct SWExecutionTime
{
public Stopwatch swExeTime;
public int intSWRecCount;
public double dblSWResult;
}
SWExecutionTime[] SWExeTime = new SWExecutionTime[10];
Это показывает ошибка времени выполнения System.NullReferenceException
, когда я пытаюсь сделать это:
SWExeTime[0].swExeTime.Start();
Начальное значение intSWRecCount
и dblSWResult
равны нулю, так что не нужно иметь конструктор для инициализации эти переменные. Единственной переменной, которая требует инициализации, является swExeTime (по-видимому). C# также показывает ошибку Structs cannot contain explicit parameterless constructors
, когда я использую конструктор без какого-либо входного параметра.
Как это исправить?
'new SWExecutionTime()' только создает экземпляр структуры; он не создает новый объект секундомера внутри структуры. Если вы хотите это сделать, напишите конструктор для структуры или укажите экземпляр по умолчанию. –
конструктор с массивом? почему понижение? – NESHOM
Я понятия не имею, что это значит. Без какой-либо конструкции нет никакой надежды на то, что там будет объект секундомера. Помните, что 'int' и' double' являются примитивными типами; компилятор может принять для них значение по умолчанию, равное нулю. То же самое относится и к классу StopWatch. –