Type.IsLayoutSequential-Eigenschaft
Ruft einen Wert ab, der angibt, ob für Type das Klassenlayoutattribut SequentialLayout ausgewählt ist.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public ReadOnly Property IsLayoutSequential As Boolean
'Usage
Dim instance As Type
Dim value As Boolean
value = instance.IsLayoutSequential
public bool IsLayoutSequential { get; }
public:
virtual property bool IsLayoutSequential {
bool get () sealed;
}
/** @property */
public final boolean get_IsLayoutSequential ()
public final function get IsLayoutSequential () : boolean
Eigenschaftenwert
true, wenn für Type das Klassenlayoutattribut SequentialLayout ausgewählt ist, andernfalls false.
Hinweise
Die Klassenlayoutattribute werden mit LayoutMask ausgewählt. Die Klassenlayoutattribute (AutoLayout, SequentialLayout und ExplicitLayout) definieren das Layout der Felder der Klasseninstanz im Speicher.
Weitere Informationen finden Sie in der Dokumentation zur Common Language Infrastructure (CLI) in "Partition II: Metadata Definition and Semantics" im Abschnitt 9.1.2. Die Dokumentation steht online unter https://msdn.microsoft.com/net/ecma/ und http://www.ecma-international.org/publications/standards/Ecma-335.htm zur Verfügung (nur auf Englisch verfügbar).
Wenn der aktuelle Type einen konstruierten generischen Typ darstellt, gilt diese Eigenschaft für die generische Typdefinition, aus der der Typ konstruiert wurde. Wenn z. B. der aktuelle TypeMyGenericType<int>
darstellt (MyGenericType(Of Integer)
in Visual Basic), wird der Wert dieser Eigenschaft durch MyGenericType<T>
bestimmt.
Wenn der aktuelle Type einen Typparameter in der Definition eines generischen Typs oder einer generischen Methoden darstellt, gibt diese Eigenschaft immer false zurück.
Beispiel
Im folgenden Beispiel wird eine Instanz einer Klasse erstellt, für die der Sequential-Member der LayoutKind-Enumeration in der StructLayoutAttribute-Klasse festgelegt wurde. Außerdem wird die IsLayoutSequential-Eigenschaft überprüft und das Ergebnis angezeigt.
Imports System
Imports System.Reflection
Imports System.ComponentModel
Imports System.Runtime.InteropServices
Imports Microsoft.VisualBasic
Class MyTypeSequential1
End Class 'MyTypeSequential1
<StructLayoutAttribute(LayoutKind.Sequential)> Class MyTypeSequential2
Public Shared Sub Main()
Try
' Create an instance of MyTypeSequential1.
Dim myObj1 As New MyTypeSequential1()
Dim myTypeObj1 As Type = myObj1.GetType()
' Check for and display the SequentialLayout attribute.
Console.WriteLine(ControlChars.Cr + "The object myObj1 has IsLayoutSequential: {0}.", myObj1.GetType().IsLayoutSequential.ToString())
' Create an instance of MyTypeSequential2.
Dim myObj2 As New MyTypeSequential2()
Dim myTypeObj2 As Type = myObj2.GetType()
' Check for and display the SequentialLayout attribute.
Console.WriteLine(ControlChars.Cr + "The object myObj2 has IsLayoutSequential: {0}.", myObj2.GetType().IsLayoutSequential.ToString())
Catch e As Exception
Console.WriteLine(ControlChars.Cr + "An exception occurred: {0}", e.Message.ToString())
End Try
End Sub 'Main
End Class 'MyTypeSeq2
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);
}
}
}
#using <System.dll>
using namespace System;
using namespace System::Reflection;
using namespace System::ComponentModel;
using namespace System::Runtime::InteropServices;
ref class MyTypeSequential1{};
[StructLayoutAttribute(LayoutKind::Sequential)]
ref class MyTypeSequential2{};
int main()
{
try
{
// Create an instance of myTypeSeq1.
MyTypeSequential1^ myObj1 = gcnew MyTypeSequential1;
// 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 = gcnew MyTypeSequential2;
// 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 );
}
}
import System.*;
import System.Reflection.*;
import System.ComponentModel.*;
import System.Runtime.InteropServices.*;
class MyTypeSequential1
{
} //MyTypeSequential1
/** @attribute 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}.",
System.Convert.ToString(myObj1.GetType().
get_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}.",
System.Convert.ToString(myObj2.GetType().
get_IsLayoutSequential()));
}
catch (System.Exception e) {
Console.WriteLine("\nAn exception occurred: {0}", e.get_Message());
}
} //main
} //MyTypeSequential2
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
Type-Klasse
Type-Member
System-Namespace
TypeAttributes
Type.IsAutoLayout-Eigenschaft
Type.IsExplicitLayout-Eigenschaft