【发布时间】:2011-06-01 16:48:48
【问题描述】:
我会尽量快,因为我已经对这个主题进行了详尽的搜索,我只找到与将 bool 转换为 int 相关的主题。
我建立了一个类来处理稀疏矩阵。它们可以用 double、int 或 bool 或任何其他值类型填充。
在位置 i,j 处获取一些矩阵元素:
public T getElementValueAt(int i, int j)
{
int ind = this.doesElemExist(i, j);
// returns the element index if it exists, or -1
return (ind == -1 ? (T)(object)0 : this.elem[ind].value );
}
在继续之前,重点介绍一下上面的不良做法,以及其他关于稀疏矩阵的内容:
我一直在搜索,发现
(T)(object)0不是一个好习惯,但我不明白为什么我不能在这里使用它,因为无论T是int还是double都可以;如果我要获取的元素不在列表
this.elem上,我应该按照其他元素类型正确返回0。
所以归结为将一个 int 值(在本例中为 0)转换为某个类型 T,这是一个类型参数。
有什么好的方法吗?有没有关于这种方法的cmets?
任何帮助将不胜感激!
提前致谢!
【问题讨论】:
-
elem[ind].value是什么类型,不是T类型有什么原因吗? -
我想你会想要
default(T)而不是(T)(object)0 -
属性值已经是T类型了