我有一个通用方法,我想对其进行约束。
public T MyMethod<T>(object obj) where T : ???
约束是所有简单类型int,bool等,但我还需要允许字符串。我有办法限制这个群体吗?
答案 0 :(得分:1)
没有什么能与您想要的完全匹配,但IConvertible
可能会做 - 它包含将值转换为所有核心的方法。类型,包括string
,并由您提到的所有核心类型实现。
BCL文档建议您不要直接使用此类型,而是根据需要使用Convert.ChangeType
或其中一种Convert.ToXXX
方法。
答案 1 :(得分:0)
我相信结构会为你提供所有你正在寻找sans字符串的类型。它也将允许任何已定义的,这对于任何解决方案都会遇到问题。
老实说,虽然这似乎可能超过了工程。您应该再次考虑您的要求,看看是否真的需要这样做。