Type.IsAutoLayout Proprietà

Definizione

Ottiene un valore che indica se i campi del tipo corrente sono disposti automaticamente dal Common Language Runtime.

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

Valore della proprietà

true se la proprietà Attributes del tipo corrente include AutoLayout; in caso contrario, false.

Implementazioni

Esempio

Nell'esempio seguente viene creata un'istanza del tipo e viene visualizzata la IsAutoLayout proprietà .

#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);
    }
}
open System.Runtime.InteropServices

// The Demo class is attributed as AutoLayout.
[<StructLayoutAttribute(LayoutKind.Auto)>]
type Demo = class end

// Create an instance of the Type class using the GetType method.
let myType = typeof<Demo>
// Get and display the IsAutoLayout property of the
// Demoinstance.
printfn $"\nThe AutoLayout property for the Demo class is {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

Commenti

Questa proprietà viene fornita come praticità. In alternativa, è possibile usare il valore di enumerazione per selezionare gli attributi del TypeAttributes.LayoutMask layout del tipo e quindi verificare se TypeAttributes.AutoLayout è impostato. I TypeAttributes.AutoLayoutvalori diTypeAttributes.ExplicitLayout enumerazione e TypeAttributes.SequentialLayout indicano il modo in cui i campi del tipo sono disposti in memoria.

Per i tipi dinamici, è possibile specificare TypeAttributes.AutoLayout quando si crea il tipo. Nel codice applicare l'attributo con il StructLayoutAttributeLayoutKind.Auto valore di enumerazione al tipo per consentire al runtime di determinare il modo appropriato per definire la classe.

Nota

Non è possibile usare il metodo per determinare se l'oggetto GetCustomAttributesStructLayoutAttribute è stato applicato a un tipo.

Se l'oggetto corrente Type rappresenta un tipo generico costruito, questa proprietà si applica alla definizione di tipo generico da cui è stato costruito il tipo. Ad esempio, se l'oggetto corrente Type rappresenta MyGenericType<int> (MyGenericType(Of Integer) in Visual Basic), il valore di questa proprietà viene determinato da MyGenericType<T>.

Se l'oggetto corrente Type rappresenta un parametro di tipo nella definizione di un tipo generico o di un metodo generico, questa proprietà restituisce falsesempre .

Si applica a

Vedi anche