与泛型一起使用语句:使用ISet <> = System.Collections.Generic.ISet <>

问题描述 投票:40回答:6

由于我使用了两个不同的通用集合名称空间(System.Collections.GenericIesi.Collections.Generic),所以发生冲突。在项目的其他部分,我同时使用nunit和mstest框架,但请限定当我调用Assert时我想通过

使用nunit版本
using Assert = NUnit.Framework.Assert;

哪个效果很好,但我想对泛型类型做同样的事情。但是,以下几行不起作用

using ISet = System.Collections.Generic.ISet;
using ISet<> = System.Collections.Generic.ISet<>;

有人知道如何告诉.net如何对泛型使用using语句吗?

c# generics syntax alias using
6个回答
37
投票

我认为最好将名称空间本身作为别名,而不是通用类型(我认为这是不可能的。)>

例如:

using S = System.Collections.Generic;
using I = Iesi.Collections.Generic;

然后使用BCL ISet<int>

S.ISet<int> integers = new S.HashSet<int>();

39
投票

[不幸的是,using指令没有执行您想要的操作。您可以说:


6
投票

您可以别名化通用类型的唯一方法是按如下方式对其进行特殊化。


3
投票

您的别名与类名本身相同,因此您仍然有歧义,就像每个名称空间都有一个using。给该类的别名一个different


1
投票

在某些情况下,您可以继承:


0
投票

您可以为一个类添加别名:

© www.soinside.com 2019 - 2024. All rights reserved.