我在想我想做什么是不可能的,但我想我会问无论如何。我正在考虑在不同的度量标准之间实现某种自定义转换 - 例如将英寸转换为米和其他单位。类型参数约束 - 没有泛型(或最近的报价!)
我在想如下的基类叫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;
}
}
有什么想法?
为什么没有仿制药? – Oded 2012-01-17 22:11:56
'Convert(T from,T to)where T:Unit' would be be suitable solution。 –
vcsjones
2012-01-17 22:14:16
vcsjones - 你的意思是转换(EngineeringUnit from,T to)where T:Unit?您需要传递T的一个实例 - 即新的Meter作为第二个参数 - 理想情况下,您不希望调用方实例化返回类型。你只想说,这是一个英寸的例子,给我米的等值。 –
Andez
2012-01-17 22:30:43