2008-12-09 76 views
2

如何在运行时检查值的类型?如何检查值类型?

我想知道我在哪里创建双打。

+0

这对C来说是不可能的。与使用typeid或重载解析的C++不同。或者你寻找编译器特定的解决方案? – 2008-12-09 23:56:06

+0

既然你用“iphone”标记了你的问题,我想你的意思是Objective-C而不是“正常”C.如果是这样,请重新提出你的问题。 – strager 2008-12-09 23:56:55

+0

你指的是一个NSValue吗? – 2008-12-10 01:13:57

回答

3

如果您使用的是Objective-C类,则可以使用[myObject isKindOfClass: [InterestingClass class]]测试。如果你使用原始类型(你的问题引用“double”类型,建议),那么你不能。然而,除非你做了一些非常时髦的东西,编译器可以告诉你什么时候基本类型匹配或不匹配,什么时候不会执行到所需类型的隐式提升。

了解更多关于您想要解决的具体问题的信息会对您有所帮助,因为解决方案可能不涉及检测双打的创建:-)。

0

除了极少数例外,您无需在运行时检查类型。类型变量只能保存其分配的类型,并且类型提升在编译时确定。