C#中要如何实现一个比较好的矩阵类?
想实现一个矩阵类,出现了问题。
代码如下:
public class MyMatrix<T> {
public int row, col;
public ** m;
MyMatrix( int row, int col ){
this.row = row;
this.col = col;
if( row==0 || col==0 ){//矩阵列数为0
if( row == 0){
m = new T[col];
}else{
m = new T[row];
}
}
else{
m = new T[row];
for(int i=0; i<col; ++i)
{
m[row] = new T[col];//报错索引无法用于object类型的表达式
}
}
}
}
首先,对于矩阵来说,矩阵的行列本应该就属类型的一部分,比如定义4*4矩阵的时候应该是MyMaterix<int, 4, 4> m = new MyMaterix<int, 4, 4> ( )。 而不是 MyMaterix<int> = new MyMaterix<int>(4,4)。
之后就是代码中的m,我想定义一个对象,既能引用一维数组,又能引用二维数组,可C#要用指针只能在unsafe模式下。这里的m类型如何设置,或者直接修改代码逻辑。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这样做后面就可以使用
MyMatrix<double, 4, 4>
才表示4*4的二维维数组啦,望采纳,谢谢!