我正在用 C# 编写一个应用程序,它将进行大量计算。一切都围绕着基本结构——价值。它基本上是双倍的,带有一些额外的参数(精度等)。它必须是一个结构,因为会创建太多的结构来提供堆分配。现在,我需要确保它们都已正确初始化。我不能声明默认的显式构造函数,尽管我提供了默认构造函数,它用 0 初始化所有内容,这在我的域中没有意义。
如果不使用参数调用我的构造函数,就无法拒绝创建实例......?
基本上我需要的是通过这个测试:
[Test]
public void HowDoesThisStructureInitializeByDefault()
{
Value v = new Value(); - if this did not compile - it would have been ok!
Assert.AreEqual(0, v.Val); - passes
Assert.AreEqual(-1, v.Accuracy); - fails
}
如果没有显式调用构造函数并且仍然访问结构,则抛出异常是可以的,但是检查所有时间将花费太多时间。
我现在几乎失去了希望,请帮助!