【发布时间】:2011-11-18 20:36:02
【问题描述】:
我写了一个泛型类:
public class Interval<T> where T : IComparable // for checking that Start < End
{
public T Start { get; set; }
public T End { get; set; }
...
}
我将这个类与 DateTime、int 等一起使用。
我需要一个返回持续时间的 Duration 属性,例如:
public object Duration
{
get
{
return End - Start;
}
}
但是当这个属性包含在我的类中时,编译器会在- 运算符上引发逻辑错误。
我可以做些什么来正常实现这个目标,还是应该忽略它?
【问题讨论】:
-
编译器如何知道您使用的类型定义了
-运算符? -
这可能会有所帮助:stackoverflow.com/questions/171664/…,查看 Marc Gravells 关于通用算术的帖子。
-
我知道,但我的意图不是专注于泛型,我的问题是更好的方法,甚至忽略泛型类。
标签: c# generics properties generic-programming