Type.IsLayoutSequential Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een waarde opgehaald die aangeeft of de velden van het huidige type opeenvolgend worden ingedeeld, in de volgorde waarin ze zijn gedefinieerd of verzonden naar de metagegevens.
public:
property bool IsLayoutSequential { bool get(); };
public bool IsLayoutSequential { get; }
member this.IsLayoutSequential : bool
Public ReadOnly Property IsLayoutSequential As Boolean
Waarde van eigenschap
trueals de Attributes eigenschap van het huidige type is opgenomenSequentialLayout; anders. false
Implementeringen
Voorbeelden
In het volgende voorbeeld wordt een exemplaar van een klasse gemaakt waarvoor de LayoutKind.Sequential opsommingswaarde in de StructLayoutAttribute klasse is ingesteld, wordt gecontroleerd op de IsLayoutSequential eigenschap en wordt het resultaat weergegeven.
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);
}
}
}
open System.Runtime.InteropServices
type MyTypeSequential1 = struct end
[<StructLayoutAttribute(LayoutKind.Sequential)>]
type MyTypeSequential2 = struct end
try
// Create an instance of myTypeSeq1.
let myObj1 = MyTypeSequential1()
let myTypeObj1 = myObj1.GetType()
// Check for and display the SequentialLayout attribute.
printfn $"\nThe object myObj1 has IsLayoutSequential: {myTypeObj1.IsLayoutSequential}."
// Create an instance of 'myTypeSeq2' class.
let myObj2 = MyTypeSequential2()
let myTypeObj2 = myObj2.GetType()
// Check for and display the SequentialLayout attribute.
printfn $"\nThe object myObj2 has IsLayoutSequential: {myTypeObj2.IsLayoutSequential}."
with e ->
printfn $"\nAn exception occurred: {e.Message}"
Imports System.Reflection
Imports System.ComponentModel
Imports System.Runtime.InteropServices
Class MyTypeSequential1
End Class
<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
End Class
Opmerkingen
Deze accommodatie is als gemak beschikbaar. U kunt ook de TypeAttributes.LayoutMask opsommingswaarde gebruiken om de typeindelingskenmerken te selecteren en vervolgens te testen of TypeAttributes.SequentialLayout deze is ingesteld. De TypeAttributes.AutoLayoutwaarden , TypeAttributes.ExplicitLayouten TypeAttributes.SequentialLayout opsomming geven aan hoe de velden van het type in het geheugen worden ingedeeld.
Voor dynamische typen kunt u opgeven TypeAttributes.SequentialLayout wanneer u het type maakt. Pas in code het StructLayoutAttribute kenmerk met de LayoutKind.Sequential opsommingswaarde toe op het type om op te geven dat de indeling opeenvolgend is.
Note
U kunt de GetCustomAttributes methode niet gebruiken om te bepalen of de StructLayoutAttribute methode is toegepast op een type.
Zie sectie 9.1.2 van de specificatie voor de documentatie over Common Language Infrastructure (CLI) voor meer informatie, 'Partition II: Metadata Definition and Semantics'.
Als de huidige Type een samengesteld algemeen type vertegenwoordigt, is deze eigenschap van toepassing op de algemene typedefinitie van waaruit het type is samengesteld. Als de huidige Type bijvoorbeeld MyGenericType<int> (MyGenericType(Of Integer) in Visual Basic) vertegenwoordigt), wordt de waarde van deze eigenschap bepaald door MyGenericType<T>.
Als de huidige Type een typeparameter vertegenwoordigt in de definitie van een algemeen type of algemene methode, retourneert falsedeze eigenschap altijd .