Да, с вами все в порядке, здесь нет никакого бокса / распаковки. Я понял, что я хочу и нужно делать. Я создам интерфейс, который объявляет некоторые матричные методы:
interface MatrixMethods
{
void MatrixIni();
void DoMultiplication();
double ReturnFinalResult();
// etc
}
Тогда я буду использовать общий класс:
class MatrixStorage <T>
{
protected T M1;
protected T M2;
// etc
}
и наконец необходимый класс:
class MatrixMult<T> : MatrixStorage<T> , MatrixMethods
{
public void MatrixIni()
{
//etc Matrix random ini
}
public void DoMultiplication()
{
// multiplication
}
public double ReturnFinalResult()
{
// compute output
}
MatrixMult(params int[] input)
{
// ini
}
}
и затем я создаю экземпляр класса и выполняю вычисления:
MatrixMethods newMatrixMult;
newMatrixMult = new MatrixMult<UserMatrixType>(userData);
newMatrixMult.DoMultiplication();
double result = newMatrixMult.ReturnFinalResult
Я прошу прощения за вводящий в заблуждение вопрос.
Лучший