其中约束为简单类型和字符串

时间:2012-11-08 10:10:18

标签: c# .net generic-constraints

我有一个通用方法,我想对其进行约束。

public T MyMethod<T>(object obj) where T : ???

约束是所有简单类型int,bool等,但我还需要允许字符串。我有办法限制这个群体吗?

2 个答案:

答案 0 :(得分:1)

没有什么能与您想要的完全匹配,但IConvertible可能会做 - 它包含将值转换为所有核心的方法。类型,包括string,并由您提到的所有核心类型实现。

BCL文档建议您不要直接使用此类型,而是根据需要使用Convert.ChangeType或其中一种Convert.ToXXX方法。

答案 1 :(得分:0)

我相信结构会为你提供所有你正在寻找sans字符串的类型。它也将允许任何已定义的,这对于任何解决方案都会遇到问题。

老实说,虽然这似乎可能超过了工程。您应该再次考虑您的要求,看看是否真的需要这样做。