Не удается определить 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
но тоже не сработает.
Как я могу определить матрицы как константы?
1 ответ
Вот документация MSDN о том, что можно определить как const. Я процитирую необходимую часть.
Только встроенные типы C# (за исключением System.Object) могут быть объявлены как const. Типы, определяемые пользователем, включая классы, структуры и массивы, не могут быть константами.
В вашем случае вы пытаетесь определить MathNet.Numerics.LinearAlgebra.Matrix<Complex32>
как const, но используется объявленный тип, поэтому не может быть const