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

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

2012-10-05 
VC.net编程有没有和C#中等效的is操作符用于判断某个对象是否是一个类的实例?VC.net编程(托管C++)有没有和C

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 语言的互操作性


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

热点排行