Type.IsInstanceOfType メソッド
指定したオブジェクトが現在の Type のインスタンスかどうかを判断します。
Public Overridable Function IsInstanceOfType( _
ByVal o As Object _) As Boolean
[C#]
public virtual bool IsInstanceOfType(objecto);
[C++]
public: virtual bool IsInstanceOfType(Object* o);
[JScript]
public function IsInstanceOfType(
o : Object) : Boolean;
パラメータ
- o
現在の Type と比較するオブジェクト。
戻り値
現在の Type が o パラメータによって表されるオブジェクトの継承階層にある場合、または現在の Type が o によってサポートされるインターフェイスである場合は true 。これらの条件のいずれも該当しない場合、または o が null 参照 (Visual Basic では Nothing) である場合は false 。
解説
このメソッドは、派生クラスでオーバーライドできます。
使用例
[Visual Basic, C#, C++] IsInstanceOfType メソッドの使用例を次に示します。
Imports System
Public Interface IMyIfc
End Interface 'IMyIfc
Public Class [MyClass]
Implements IMyIfc
End Class '[MyClass]
Public Class MyDerivedClass
Inherits [MyClass]
End Class 'MyDerivedClass
Class IsInstanceTest
Public Shared Sub Main()
Dim imyifcType As Type = GetType(IMyIfc)
Dim mc As New [MyClass]()
Dim mcType As Type = mc.GetType()
Dim mdc = New MyDerivedClass()
Dim mdcType As Type = mdc.GetType()
Dim array(10) As Integer
Dim arrayType As Type = GetType(Array)
Console.WriteLine("Is int[] an instance of the Array class? {0}.", arrayType.IsInstanceOfType(array))
Console.WriteLine("Is myclass an instance of MyClass? {0}.", mcType.IsInstanceOfType(mc))
Console.WriteLine("Is myderivedclass an instance of MyClass? {0}.", mcType.IsInstanceOfType(mdc))
Console.WriteLine("Is myclass an instance of IMyIfc? {0}.", imyifcType.IsInstanceOfType(mc))
Console.WriteLine("Is myderivedclass an instance of IMyIfc? {0}.", imyifcType.IsInstanceOfType(mdc))
End Sub 'Main
End Class 'IsInstanceTest
[C#]
using System;
public interface IMyIfc {}
public class MyClass : IMyIfc {}
public class MyDerivedClass : MyClass {}
class IsInstanceTest
{
public static void Main()
{
Type imyifcType=typeof(IMyIfc);
MyClass mc = new MyClass();
Type mcType = mc.GetType();
MyClass mdc = new MyDerivedClass();
Type mdcType = mdc.GetType();
int [] array = new int [10];
Type arrayType = typeof(Array);
Console.WriteLine("Is int[] an instance of the Array class? {0}.", arrayType.IsInstanceOfType(array));
Console.WriteLine("Is myclass an instance of MyClass? {0}.", mcType.IsInstanceOfType(mc));
Console.WriteLine("Is myderivedclass an instance of MyClass? {0}.", mcType.IsInstanceOfType(mdc));
Console.WriteLine("Is myclass an instance of IMyIfc? {0}.", imyifcType.IsInstanceOfType(mc));
Console.WriteLine("Is myderivedclass an instance of IMyIfc? {0}.", imyifcType.IsInstanceOfType(mdc));
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
public __gc __interface IMyIfc {};
public __gc class MyClass : public IMyIfc {};
public __gc class MyDerivedClass : public MyClass {};
int main() {
Type* imyifcType=__typeof(IMyIfc);
MyClass* mc = new MyClass();
Type* mcType = mc->GetType();
MyClass* mdc = new MyDerivedClass();
Type* mdcType = mdc->GetType();
Int32 array[] = new Int32[10];
Type* arrayType = __typeof(Array);
Console::WriteLine(S"Is Int32[] an instance of the Array class? {0}.", __box(arrayType->IsInstanceOfType(array)));
Console::WriteLine(S"Is myclass an instance of MyClass? {0}.", __box(mcType->IsInstanceOfType(mc)));
Console::WriteLine(S"Is myderivedclass an instance of MyClass? {0}.", __box(mcType->IsInstanceOfType(mdc)));
Console::WriteLine(S"Is myclass an instance of IMyIfc? {0}.", __box(imyifcType->IsInstanceOfType(mc)));
Console::WriteLine(S"Is myderivedclass an instance of IMyIfc? {0}.", __box(imyifcType->IsInstanceOfType(mdc)));
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard