Type.IsInterface Property

Definition

Gets a value indicating whether the Type is an interface; that is, not a class or a value type.

public:
 property bool IsInterface { bool get(); };
public bool IsInterface { get; }
member this.IsInterface : bool
Public ReadOnly Property IsInterface As Boolean

Property Value

true if the Type is an interface; otherwise, false.

Implements

Examples

The following example creates an interface, checks for the interface type, and indicates whether a class has the IsInterface property set.

using namespace System;

// Declare an interface.
interface class myIFace{};
public ref class MyIsInterface{};

void main()
{
   try
   {
      // Get the IsInterface attribute for myIFace.
      bool myBool1 = myIFace::typeid->IsInterface;
      
      //Display the IsInterface attribute for myIFace.
      Console::WriteLine( "Is the specified type an interface? {0}.", myBool1 );
      
      // Get the attribute IsInterface for MyIsInterface.
      bool myBool2 = MyIsInterface::typeid->IsInterface;
      
      //Display the IsInterface attribute for MyIsInterface.
      Console::WriteLine( "Is the specified type an interface? {0}.", myBool2 );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "\nAn exception occurred: {0}.", e->Message );
   }
}
/* The example produces the following output:

Is the specified type an interface? True.
Is the specified type an interface? False.
*/
using System;
// Declare an interface.
interface myIFace
{
}
class MyIsInterface
{
    public static void Main(string []args)
    {
        try
        {
            // Get the IsInterface attribute for myIFace.
            bool myBool1 = typeof(myIFace).IsInterface;
            //Display the IsInterface attribute for myIFace.
            Console.WriteLine("Is the specified type an interface? {0}.", myBool1);
            // Get the attribute IsInterface for MyIsInterface.
            bool myBool2 = typeof(MyIsInterface).IsInterface;
            //Display the IsInterface attribute for MyIsInterface.
            Console.WriteLine("Is the specified type an interface? {0}.", myBool2);
        }
        catch(Exception e)
        {
            Console.WriteLine("\nAn exception occurred: {0}.", e.Message);
        }
    }
}
/* The example produces the following output:

Is the specified type an interface? True.
Is the specified type an interface? False.
*/
// Declare an interface.
type myIFace = interface end

type MyIsInterface = class end

try
    // Get the IsInterface attribute for myIFace.
    let myBool1 = typeof<myIFace>.IsInterface
    //Display the IsInterface attribute for myIFace.
    printfn $"Is the specified type an interface? {myBool1}."
    // Get the attribute IsInterface for MyIsInterface.
    let myBool2 = typeof<MyIsInterface>.IsInterface
    //Display the IsInterface attribute for MyIsInterface.
    printfn $"Is the specified type an interface? {myBool2}."
with e ->
    printfn $"\nAn exception occurred: {e.Message}."
(* The example produces the following output:

Is the specified type an interface? True.
Is the specified type an interface? False.
*)
' Declare an interface.
Interface myIFace
End Interface

Class MyIsInterface
    Public Shared Sub Main()
        ' Get the IsInterface attribute for myIFace.
        Dim myBool1 As Boolean = GetType(myIFace).IsInterface
        Console.WriteLine("Is the specified type an interface? {0}.", myBool1)

        ' Determine whether Example is an interface.
        Dim myBool2 As Boolean = GetType(MyIsInterface).IsInterface
        Console.WriteLine("Is the specified type an interface? {0}.", myBool2)
        Console.ReadLine()

    End Sub
End Class
' The example displays the following output:
'       Is the specified type an interface? True.
'       Is the specified type an interface? False.

Remarks

The ClassSemanticsMask distinguishes a type declaration as class, interface or value type.

If the current Type represents a type parameter in the definition of a generic type or generic method, this property always returns false.

This property is read-only.

Applies to

See also