我自己构建了一个泛型集合类,它是这样定义的.
public class StatisticItemHits{...}
此类只能int
与string
值一起使用.不过这个
public class StatisticItemHitswhere T : string, int {...}
不会编译.我究竟做错了什么?
类型限制旨在与接口一起使用.您的示例表明您希望允许继承自int和string的类,这有点无稽之谈.我建议你设计一个接口,其中包含你将在泛型类StatisticItemHits中使用的方法,并使用该接口作为限制.但是我在这里看不到您的要求,也许您可以发布有关您的方案的更多详细信息?
您可以创建StatisticItemHits
一个抽象类并创建两个子类:
StatisticItemHitsInt : StatisticItemHits
StatisticItemHitsString : StatisticItemHits
这样,只能有StatisticItemHits的int和字符串表示
正如其他人所说,你不能以这种方式使用类型限制.你可以做的是从你的基本类型专门化如下:
public class StatisticItemHits{ } public class StringStatisticItemHits : StatisticItemHits { } public class IntegerStatisticItemHits : StatisticItemHits { }
此外,由于您的基类是通用的,因此您无法以多态方式使用它.如果需要这样做,请使StatisticItemHits实现一个接口并使用它来引用实例.就像是:
public class StatisticItemHits: IStaticticItemHits { } public interface IStatisticItemHits { }