我正在用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 }
如果没有显式调用构造函数并且仍然访问结构,则抛出异常是可以的,但是检查所有时间都需要花费太多时间.
我现在几乎失去了希望,请帮忙!