0
|
Craig Gidney Mihai · 技术社区 · 15 年前 |
![]() |
1
4
我认为解决您的问题的一个紧凑的解决方案是:
说明:
它不像您发布的Java解决方案那么紧凑(除非我错了,C语言不支持关键字的实例或Java通用通配符语法),但它会起作用。 编辑:在下面Cory Larson的评论的提示下,我应该补充一点,虽然我发布的方法只适用于直接将泛型与已知的泛型类型进行比较,但是如果您想了解它是否实现了泛型接口,请使用:
|
![]() |
2
0
当然,差不多。例如:
为此,结果是
会回来的
编辑 当当,丹的故事最先得到。 |
![]() |
3
0
如果您想找出一个类型是否是foo(of t),因为您对使用一些不依赖t的属性感兴趣,我建议您在非泛型基类或非泛型接口中使用该属性。例如,如果定义一个提供类似数组访问的ISuperCollection(of T),可以提供一个非通用的ISuperCollection集合,该集合实现方法count、removeat、compareat、swapat和rotate a t(调用rotateat(4,3,1)),将从项目4开始旋转三个项目,向上旋转一个点。从而用4替换第5项,用5替换第6项,用旧值6替换第4项,并使isupCollection(of t)从此继承。 顺便说一句,如果将读卡器接口与编写器接口分离,则读卡器接口可以是协变的,编写器接口可以是反变的。如果任何属性或索引器同时实现读和写功能,您将需要定义一个读-写接口,其中包括任何此类属性或索引器的读-写实现;有点麻烦,但我值得做一点额外的努力。 |
![]() |
Smiley · Java推断泛型类型 7 年前 |
![]() |
wipman · 以任何对象为参数的函数 8 年前 |
![]() |
Dib · 使用泛型接口作为方法或函数的类型参数 10 年前 |
![]() |
mo. · 使用匿名类型参数进行Moq验证 11 年前 |