Не удается определить 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

Другие вопросы по тегам