Я постараюсь быть быстрым, так как я уже провел исчерпывающий поиск по этой теме, и я нахожу только темы, связанные с преобразованием 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 целым или двойным;
Если элемент, который я хочу получить, отсутствует в списке this.elem
, я должен вернуть 0, набранный правильно, в соответствии с типом других элементов.
Таким образом, все сводится к преобразованию значения типа int (в данном случае 0) в определенный тип T, который является параметром типа.
Есть ли хороший способ сделать это? Любые комментарии об этом подходе?
Любая помощь будет оценена!
Заранее спасибо!