首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

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

2013-01-26 
VC.net编程有没有和C#中等效的is操作符用于判断某个对象是否是一个类的实例?本帖最后由 snddman 于 2012-0

VC.net编程有没有和C#中等效的is操作符用于判断某个对象是否是一个类的实例?
本帖最后由 snddman 于 2012-04-27 08:37:25 编辑 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 语言的互操作性


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

热点排行