<分区>
我有一个带有两个通用参数的类。我想将第二个通用参数限制为与第一个不同的类型。有没有办法在编译时做出这样的限制?在运行时检查类型不是很有用。
public class Test<A, B>
where B : not_typeof(A)
{
// ...
}
<分区>
我有一个带有两个通用参数的类。我想将第二个通用参数限制为与第一个不同的类型。有没有办法在编译时做出这样的限制?在运行时检查类型不是很有用。
public class Test<A, B>
where B : not_typeof(A)
{
// ...
}
最佳答案
唯一的方法是在运行时。
我改编自 answer 的答案我在评论中发帖了。
public class Test<A, B> {
static Test() {
if (typeof(B) == typeof(A)) {
throw new NotSupportedException("Argument B is not supported.");
}
}
}
关于c# - 通用参数 : ensure different types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18309063/