1

我有一个通用方法,我想对其施加约束。

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

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

4

2 回答 2

1

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

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

于 2012-11-08T15:00:46.590 回答
0

我相信结构会给你所有你正​​在寻找的无字符串类型。它也将允许任何已定义的内容,这是任何解决方案都会遇到的问题。

老实说,虽然这看起来可能是过度工程。您应该再次考虑您的要求,看看这是否真的需要。

于 2012-11-08T15:00:08.990 回答