Я думаю, что то, что я хочу сделать, невозможно, но подумал, что все равно спрошу. Я имею в виду реализацию какого-то пользовательского преобразования между различными метрическими измерениями, например, преобразование дюймов в метры и другие единицы.
Я думаю, базовый класс называется Unit следующим образом. ПРИМЕЧАНИЕ. Я не указывал ни одного поля для хранения количества единиц, например, 2 метра, 5 дюймов и т. Д .:
public abstract class Unit {
protected string _name;
public Unit(string name)
{
_name = name;
}
}
Затем подклассы единиц измерения в метрах и дюймах:
public class Metre : Unit {
public Metre() : base("Metre")
{
}
}
public class Inch : Unit {
public Metre() : base("Inch")
{
}
}
Я хотел бы иметь класс, который мог бы обрабатывать преобразование этих единиц между собой. Что-то вроде:
public static class UnitConvertor
{
public Unit Convert(Unit from, Type to) : where Type extends/inherits from Unit
{
// do the conversion
return the instance of Type to;
}
}
Есть мысли?