Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Type.IsLayoutSequential-Eigenschaft

 

Veröffentlicht: Oktober 2016

Ruft einen Wert ab, der angibt, ob die Felder des aktuellen Typs sequenziell angelegt werden, in der Reihenfolge, in der sie definiert oder an die Metadaten ausgegeben wurden.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public bool IsLayoutSequential { get; }

Eigenschaftswert

Type: System.Boolean

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

Diese Eigenschaft wird als Annehmlichkeit bereitgestellt. Alternativ können Sie die TypeAttributes.LayoutMask-Enumerationswert, wählen Sie die Attribute des Typs Layout und diesen dann testen, ob TypeAttributes.SequentialLayout festgelegt ist. Die TypeAttributes.AutoLayout, TypeAttributes.ExplicitLayout, und TypeAttributes.SequentialLayout -Enumerationswerte geben an, wie die Felder des Typs werden im Speicher angelegt.

Für dynamische Typen können Sie angeben TypeAttributes.SequentialLayout beim Erstellen des Typs. Im Code Anwenden der StructLayoutAttribute -Attribut mit dem LayoutKind.Sequential Enumerationswert in den Typ an, das Layout ist sequenziell.

System_CAPS_noteHinweis

Können keine der GetCustomAttributes Methode, um zu bestimmen, ob die StructLayoutAttribute auf einen Typ angewendet wurde.

Weitere Informationen finden Sie im Abschnitt 9.1.2 der Spezifikation für die Common Language Infrastructure (CLI)-Dokumentation "Partition II: Metadata Definition and Semantics". Die Dokumentation ist online verfügbar. finden Sie unter ECMA C# and Common Language Infrastructure Standards auf MSDN und Standard ECMA-335 - Common Language Infrastructure (CLI) auf der Website von Ecma International.

Wenn die aktuelle Type stellt ein konstruierter generischer Typ dieser Eigenschaft gilt, für die generische Typdefinition, aus der der Typ konstruiert wurde. Zum Beispiel wenn die aktuelle Type darstellt MyGenericType<int> (MyGenericType(Of Integer) in Visual Basic), der Wert dieser Eigenschaft wird bestimmt, indem MyGenericType<T>.

Wenn die aktuelle Type einen Typparameter in der Definition einer generischen Typs oder einer generischen Methode darstellt, auf diese Eigenschaft gibt immer false.

Das folgende Beispiel erstellt eine Instanz einer Klasse für die die LayoutKind.SequentialEnumerationswert in der StructLayoutAttribute Klasse festgelegt wurde, überprüft, ob die IsLayoutSequential -Eigenschaft, und das Ergebnis angezeigt.

using System;
using System.Reflection;
using System.ComponentModel;
using System.Runtime.InteropServices;
class MyTypeSequential1
{
}
[StructLayoutAttribute(LayoutKind.Sequential)]
class MyTypeSequential2
{
    public static void Main(string []args)
    {
        try
        {
            // Create an instance of myTypeSeq1.
            MyTypeSequential1 myObj1 = new MyTypeSequential1();
            Type myTypeObj1 = myObj1.GetType();
            // Check for and display the SequentialLayout attribute.
            Console.WriteLine("\nThe object myObj1 has IsLayoutSequential: {0}.", myObj1.GetType().IsLayoutSequential);
            // Create an instance of 'myTypeSeq2' class.
            MyTypeSequential2 myObj2 = new MyTypeSequential2();
            Type myTypeObj2 = myObj2.GetType();
            // Check for and display the SequentialLayout attribute.
            Console.WriteLine("\nThe object myObj2 has IsLayoutSequential: {0}.", myObj2.GetType().IsLayoutSequential);
        }
        catch(Exception e)
        {
            Console.WriteLine("\nAn exception occurred: {0}", e.Message);
        }
    }
}

.NET Framework
Verfügbar seit 1.1
Windows Phone Silverlight
Verfügbar seit 8.0
Zurück zum Anfang
Anzeigen: