С одной стороны хочется сделать гибко выбор типа, кому-то удобнее float, double, кому-то int,
например
public class Vector2D<T>
{
public T X {get;}
public T Y {get;}
}
public class Vector3D<T>
{
public T X {get;}
public T Y {get;}
public T Z {get;}
}
С другой получается ограничение языка, мы не можем указать например where T : double, float, int или operator+, operator-.
также не можем один раз написать правило сложения, например operator+= { a.x + b.x, a.y + b.y },
Т.е. делая такое API нужно
1. делать свои типы базовый Number, и его наследники FloatNumber,DoubleNumber и т.д. ...
2. делать отдельную логику для каждого типа, дублируя операции +, — и т.д., либо генерить ее автоматически через T4
Есть ли какие-то хорошие примеры удобного API решающего проблему выбора типа данных для координат ?
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов