c# - 无法将 MathNet.Numerics.LinearAlgebra.Matrix 定义为 Const?
问题描述
这是 C# 代码:
const MathNet.Numerics.LinearAlgebra.Matrix<Complex32> ket_Zero =
MathNet.Numerics.LinearAlgebra.Matrix<Complex32>.Build.DenseOfRowMajor(2, 1,
new MathNet.Numerics.Complex32[] {
new MathNet.Numerics.Complex32(1,0),
new MathNet.Numerics.Complex32(0,0)
} );
如果我不放 const 关键字也没关系。但是,如果我想将其定义为常量,Microsoft Visual Studio 会拒绝
错误代码 CS0133 = 分配给“Form1.ket_Zero”的表达式必须是常量。
我也尝试过替换const
,readonly
但也不起作用。
如何将矩阵定义为常量?
解决方案
这是MSDN中关于可以定义为 const 的文档。我将引用所需的部分。
只有 C# 内置类型(不包括 System.Object)可以声明为 const。用户定义的类型,包括类、结构和数组,不能是 const。
在您的情况下,您尝试定义MathNet.Numerics.LinearAlgebra.Matrix<Complex32>
为 const 但它使用声明类型,因此不能const
推荐阅读
- python-3.x - 如何在 Python 中获取总行数?
- elasticsearch - 当我查询不包含该术语的索引时,为什么“must_not”不起作用。
- python - Pandas str.extract/ re.search using another series or column as a pattern
- c# - LabView Xml flatterned TimeStamp to C# DateTime
- javascript - Comparing 2 dates angular
- java - is using a hashmap with keys that are their values a bad idea?
- python - 用公式替换 numpy 数组中的每个像素
- css - 如何将 Bootstrap 4 中的列与不确定的列数对齐
- java - 自动装箱和取消装箱有什么区别以及何时使用它?
- python - 试图用圣杯转发请求