说起来挺智障的,今天有个需求就是实现多个泛型,但是忘了怎么写了,搜了一圈竟然没搜着,偶然看见有人提起Dictionary,心想那不就是多泛型吗,赶紧试了试发现能用,如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19//泛型TA中需要实现的接口
public interface IAFunc
{
A()
}
//泛型TB中需要实现的接口
public interface IBFunc
{
B()
}
//在Tag类中给两泛型TA、TB同时添加约束
public class Tag<TA,TB>
where TA:IAFunc
where TB:IBFunc
{
//做点什么...
}
然后,又发现一个更智障的问题:我想在这个Tag类中实现一个接口,但是惊讶地发现不知道该在哪写了!又是一顿搜索,仍然没找到答案,硬试,试出来了:
1 | //泛型TA中需要实现的接口 |
之前还批评java的extends与implement写着麻烦,看来遇到这种高级用法的时候还是Java更直观一些。C#虽然冒号走遍天下,事一多反而不知道冒号该加哪了。