Type.IsAutoLayout Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob die Felder des aktuellen Typs automatisch von der Common Language Runtime angelegt werden.

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

Eigenschaftswert

Boolean

true, wenn die Attributes-Eigenschaft des aktuellen Typs AutoLayout umfasst; andernfalls false.

Implementiert

Beispiele

Im folgenden Beispiel wird eine Instanz des Typs erstellt und die -Eigenschaft IsAutoLayout angezeigt.

#using <System.dll>

using namespace System;
using namespace System::Reflection;
using namespace System::ComponentModel;
using namespace System::Runtime::InteropServices;

// The MyDemoAttribute class is selected as AutoLayout.

[StructLayoutAttribute(LayoutKind::Auto)]
public ref class MyDemoAttribute{};

void MyAutoLayoutMethod( String^ typeName )
{
   try
   {
      
      // Create an instance of the Type class using the GetType method.
      Type^ myType = Type::GetType( typeName );
      
      // Get and display the IsAutoLayout property of the
      // MyDemoAttribute instance.
      Console::WriteLine( "\nThe AutoLayout property for the MyDemoAttribute is {0}.", myType->IsAutoLayout );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "\nAn exception occurred: {0}.", e->Message );
   }

}

int main()
{
   MyAutoLayoutMethod( "MyDemoAttribute" );
}
using System;
using System.Runtime.InteropServices;

// The Demo class is attributed as AutoLayout.
[StructLayoutAttribute(LayoutKind.Auto)]
public class Demo
{
}

public class Example
{
    public static void Main()
    {
        // Create an instance of the Type class using the GetType method.
        Type  myType=typeof(Demo);
        // Get and display the IsAutoLayout property of the
        // Demoinstance.
        Console.WriteLine("\nThe AutoLayout property for the Demo class is {0}.",
            myType.IsAutoLayout);
    }
}
Imports System.Runtime.InteropServices

' The Demo class is has the AutoLayout attribute.
<StructLayoutAttribute(LayoutKind.Auto)> _
Public Class Demo
End Class 

Public Class Example
    Public Shared Sub Main()
        ' Get the Type object for the Demo class.
        Dim myType As Type = GetType(Demo)
        ' Get and display the IsAutoLayout property of the 
        ' Demo class.
        Console.WriteLine("The AutoLayout property for the Demo class is '{0}'.", _
            myType.IsAutoLayout.ToString())
    End Sub 
End Class

Hinweise

Diese Eigenschaft wird der Einfachheit halber bereitgestellt. Alternativ können Sie den -Enumerationswert verwenden, um die Typlayoutattribute auszuwählen und dann zu TypeAttributes.LayoutMask testen, ob TypeAttributes.AutoLayout festgelegt ist. Die TypeAttributes.AutoLayout Enumerationswerte , und geben an, wie die Felder des Typs TypeAttributes.ExplicitLayout TypeAttributes.SequentialLayout im Arbeitsspeicher angelegt werden.

Für dynamische Typen können Sie angeben, TypeAttributes.AutoLayout wann Sie den Typ erstellen. Wenden Sie im Code das StructLayoutAttribute -Attribut mit dem -Enumerationswert auf den -Typ an, damit die Laufzeit die geeignete Methode zum Festlegen der LayoutKind.Auto Klasse bestimmen kann.

Hinweis

Sie können die -Methode GetCustomAttributes nicht verwenden, um zu bestimmen, StructLayoutAttribute ob auf einen Typ angewendet wurde.

Wenn der aktuelle einen konstruierten generischen Typ darstellt, gilt diese Eigenschaft für die generische Typdefinition, aus der Type der Typ erstellt wurde. Wenn der aktuelle z. Type MyGenericType<int> B. ( in Visual Basic) darstellt, wird der Wert MyGenericType(Of Integer) dieser Eigenschaft durch bestimmt.MyGenericType<T>.

Wenn der aktuelle einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, gibt diese Type Eigenschaft immer false zurück.

Gilt für

Siehe auch