当前位置: 代码迷 >> VC >> VC.net编程有没有跟C#中等效的is操作符用于判断某个对象是否是一个类的实例
  详细解决方案

VC.net编程有没有跟C#中等效的is操作符用于判断某个对象是否是一个类的实例

热度:7860   发布时间:2013-02-25 00:00:00.0
VC.net编程有没有和C#中等效的is操作符用于判断某个对象是否是一个类的实例?
VC.net编程(托管C++)有没有和C#中等效的is操作符,用于判断某个对象是否是一个类的实例,例如
if(str is String)
{
}


------解决方案--------------------------------------------------------
Visual C++
如何:使用 C++ 实现 C# 的 is 和 as 关键字
请参见 示例 
 语言筛选器: 全部 语言筛选器: 多个 语言筛选器: Visual Basic 语言筛选器: C# 语言筛选器: C++ 语言筛选器: J# 语言筛选器: JScript
 Visual Basic(声明) 
 Visual Basic(用法) 
 C# 
 C++ 
 J# 
 JScript 

本主题演示如何在 C++ 中实现 is 和 as C# 关键字的功能。

有关更多信息,请参见 is(C# 参考)和 as(C# 参考)。

示例
复制代码 
// CS_is_as.cpp
// compile with: /clr
using namespace System;

interface class I {
public:
void F();
};

ref struct C : public I {
virtual void F( void ) { }
};

template < class T, class U > 
Boolean isinst(U u) {
return dynamic_cast< T >(u) != nullptr;
}

int main() {
C ^ c = gcnew C();
I ^ i = safe_cast< I ^ >(c); // is (maps to castclass in IL)
I ^ ii = dynamic_cast< I ^ >(c); // as (maps to isinst in IL)

// simulate 'as':
Object ^ o = "f";
if ( isinst< String ^ >(o) )
Console::WriteLine("o is a string");
}
 

输出
  
o is a string
 

请参见
其他资源
C++ 与其他 .NET 语言的互操作性


 要提出有关“帮助”或本产品其他功能的建议或错误报告,请转到反馈站点。
  相关解决方案