无法将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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...