当前位置:  开发笔记 > 编程语言 > 正文

将T限制为字符串和整数?

如何解决《将T限制为字符串和整数?》经验,为你挑选了3个好方法。

我自己构建了一个泛型集合类,它是这样定义的.

public class StatisticItemHits{...}

此类只能intstring值一起使用.不过这个

public class StatisticItemHits where T : string, int {...}

不会编译.我究竟做错了什么?



1> driAn..:

类型限制旨在与接口一起使用.您的示例表明您希望允许继承自int和string的类,这有点无稽之谈.我建议你设计一个接口,其中包含你将在泛型类StatisticItemHits中使用的方法,并使用该接口作为限制.但是我在这里看不到您的要求,也许您可​​以发布有关您的方案的更多详细信息?



2> Ruben..:

您可以创建StatisticItemHits一个抽象类并创建两个子类:

StatisticItemHitsInt : StatisticItemHits{}

StatisticItemHitsString : StatisticItemHits{}

这样,只能有StatisticItemHits的int和字符串表示



3> Sean Kearon..:

正如其他人所说,你不能以这种方式使用类型限制.你可以做的是从你的基本类型专门化如下:

public class StatisticItemHits  { }

public class StringStatisticItemHits : StatisticItemHits { }

public class IntegerStatisticItemHits : StatisticItemHits { }

此外,由于您的基类是通用的,因此您无法以多态方式使用它.如果需要这样做,请使StatisticItemHits实现一个接口并使用它来引用实例.就像是:

public class StatisticItemHits  : IStaticticItemHits { }

public interface IStatisticItemHits { }

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有