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.