我正在尝试使用 System.Numerics.Vector<T>
(文档)。
我编写了一个简单的单元测试:
var v = new System.Numerics.Vector<double>(new double[] { 12, 13, 14 });
Assert.AreEqual(3, v.Count);
但是编译时出现了错误:
成员“Vector.Count”无法使用实例引用访问;请改为使用类型名称
令我惊讶的是,Vector<T>.Count
是静态的。
于是我尝试了:
var v = new System.Numerics.Vector<double>(new double[] { 12, 13, 14 });
Assert.AreEqual(3, Vector<double>.Count);
现在代码已经构建成功,但单元测试失败了:
Assert.AreEqual 失败。期望值为:<3>,实际值为:<2>。
发生了什么?
调查发现:
Assert.AreEqual(2, Vector<double>.Count);
Assert.AreEqual(4, Vector<float>.Count);
Assert.AreEqual(4, Vector<int>.Count);
Assert.AreEqual(2, Vector<long>.Count);