不相关类型的包装器在C#中启用通用约束

时间:2013-07-18 11:16:35

标签: c# generics

如果你有一个泛型类型需要包含一个bool或一个名为Number的自定义数字类型,那么为bool创建一个包装器类型是不是一个坏主意,并且这样做包装器和{{1从同一个基类继承?那么您代替NumberMyClass<bool>吗?

这将确保您只能执行MyClass<BoolWrapper>,其中MyClass<RightType>RightType包装,bool类型或公共基类。不允许Number。它基本上位于此之间,并将MyClass<WrongType>拆分为两个类,MyClassMyClassWithBool。这是因为我正在制作DSL。我可能希望有一个类似这样的方法来避免样板代码:

MyClassWithNumber

但这样可以提供错误的类型,所以我希望能够做到这样的事情:

public void Bind<T>(MyClass<T> m) { ... }

然后我不需要:

public void Bind<T>(MyClass<T> m) where T : BaseClass { ... }

保重, 克尔。

0 个答案:

没有答案