结构不能包含显式无参数构造函数
Structs cannot contain explicit parameterless constructors
我想定义一个包含 StopWatch 的结构,然后是一个结构数组。
struct SWExecutionTime
{
public Stopwatch swExeTime;
public int intSWRecCount;
public double dblSWResult;
}
SWExecutionTime[] SWExeTime = new SWExecutionTime[10];
当我尝试这样做时,它显示 运行-time 错误 System.NullReferenceException
:
SWExeTime[0].swExeTime.Start();
intSWRecCount
和dblSWResult
的初始值为零,所以我不需要构造函数来初始化这些变量。唯一需要初始化的变量是 swExeTime(显然)。当我使用不带任何输入参数的构造函数时,C# 也会显示错误 Structs cannot contain explicit parameterless constructors
。
我该如何解决这个问题?
使用 class,你为什么卡在结构上?
class SWExecutionTime
{
public Stopwatch SWExeTime { get; } = new Stopwatch();
public int SWRecCount { get; } = 0;
public double SWResult { get; } = 0;
}
此外,请遵循命名的最佳做法。
我想定义一个包含 StopWatch 的结构,然后是一个结构数组。
struct SWExecutionTime
{
public Stopwatch swExeTime;
public int intSWRecCount;
public double dblSWResult;
}
SWExecutionTime[] SWExeTime = new SWExecutionTime[10];
当我尝试这样做时,它显示 运行-time 错误 System.NullReferenceException
:
SWExeTime[0].swExeTime.Start();
intSWRecCount
和dblSWResult
的初始值为零,所以我不需要构造函数来初始化这些变量。唯一需要初始化的变量是 swExeTime(显然)。当我使用不带任何输入参数的构造函数时,C# 也会显示错误 Structs cannot contain explicit parameterless constructors
。
我该如何解决这个问题?
使用 class,你为什么卡在结构上?
class SWExecutionTime
{
public Stopwatch SWExeTime { get; } = new Stopwatch();
public int SWRecCount { get; } = 0;
public double SWResult { get; } = 0;
}
此外,请遵循命名的最佳做法。