Бөлісу құралы:


Type.IsAutoLayout Свойство

Определение

Возвращает значение, указывающее, будут ли поля текущего типа автоматически выложены средой CLR.

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

Значение свойства

trueЗначение Attributes , falseесли свойство текущего типа содержитAutoLayout; в противном случае .

Реализации

Примеры

В следующем примере создается экземпляр типа и отображается IsAutoLayout свойство.

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

Комментарии

Это свойство предоставляется в качестве удобства. Кроме того, можно использовать TypeAttributes.LayoutMask значение перечисления для выбора атрибутов макета типа, а затем проверить, задано ли TypeAttributes.AutoLayout значение. TypeAttributes.ExplicitLayoutЗначения TypeAttributes.AutoLayoutперечисления и TypeAttributes.SequentialLayout перечисления указывают способ, как поля типа размещаются в памяти.

Для динамических типов можно указать TypeAttributes.AutoLayout при создании типа. В коде примените StructLayoutAttribute атрибут со LayoutKind.Auto значением перечисления к типу, чтобы среда выполнения определила подходящий способ размещения класса.

Замечание

Метод нельзя использовать GetCustomAttributes для определения того, StructLayoutAttribute применен ли он к типу.

Если текущий Type представляет созданный универсальный тип, это свойство применяется к определению универсального типа, из которого был создан тип. Например, если текущий Type представляет MyGenericType<int> (MyGenericType(Of Integer) в Visual Basic), значение этого свойства определяется MyGenericType<T>.

Если текущий Type представляет параметр типа в определении универсального типа или универсального метода, это свойство всегда возвращается false.

Применяется к

См. также раздел