Esporta (0) Stampa
Espandi tutto
Espandi Riduci a icona

Proprietà Type.IsExplicitLayout

Ottiene un valore che indica se l'attributo di layout della classe ExplicitLayout è selezionato per il Type.

Spazio dei nomi: System
Assembly: mscorlib (in mscorlib.dll)

public bool IsExplicitLayout { get; }
/** @property */
public final boolean get_IsExplicitLayout ()

public final function get IsExplicitLayout () : boolean

Valore proprietà

true se l'attributo di layout della classe ExplicitLayout è selezionato per Type. In caso contrario, false.

LayoutMask è utilizzato per selezionare gli attributi di layout della classe. Gli attributi di layout della classe ( AutoLayout , SequentialLayout and ExplicitLayout ) definiscono la disposizione dei campi dell'istanza di classe nella memoria.

Le classi contrassegnate con l'attributo ExplicitLayout indicano al caricatore di ignorare la sequenza dei campi e di utilizzare le regole di layout esplicite fornite, ovvero il formato di offset del campo, le dimensioni complessive della classe e l'allineamento, o di utilizzare tutte le regole.

Utilizzare l'attributo ExplicitLayout per specificare gli offset di inizio di ogni campo o le dimensioni complessive ed eventualmente le dimensioni di compressione degli oggetti della classe. Le dimensioni di compressione rappresentano lo spazio vuoto della memoria tra i campi e devono essere pari a 1, 2, 4, 8 o 16 byte.

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

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

Nell'esempio riportato di seguito viene creata un'istanza del tipo specificato e viene visualizzata la proprietà IsExplicitLayout della classe MyDemoAttribute.

using System;
using System.Reflection;
using System.ComponentModel;
using System.Runtime.InteropServices;
//The class to be tested for the ExplicitLayout property.
[StructLayoutAttribute(LayoutKind.Explicit)]
public class Demo
{
}
public class MyTypeClass
{
    public static void Main(string[] args)
    {
        // Create an instance of the type using the GetType method.
        Type  myType = typeof(Demo);
        // Get and display the IsExplicitLayout property.
        Console.WriteLine("\nThe IsExplicitLayout property of the Demo type is {0}.", 
            myType.IsExplicitLayout); 
    }
}

import System.*;
import System.Reflection.*;
import System.ComponentModel.*;
import System.Runtime.InteropServices.*;

//The class to be tested for the ExplicitLayout property.
/** @attribute StructLayoutAttribute(LayoutKind.Explicit)
 */
public class MyDemoAttribute
{
} //MyDemoAttribute

public class MyTypeClass
{
    public static void main(String[] args)
    {
        MyIsExplicitLayoutMethod("MyDemoAttribute");
    } //main

    public static void MyIsExplicitLayoutMethod(String typeName)
    {
        try {
            // Create an instance of the type using the GetType method.
            Type myType = Type.GetType(typeName);
            // Get and display the IsExplicitLayout property.
            Console.WriteLine("\nThe IsExplicitLayout property of the " 
                + "MyDemoAttribute instance is {0}.", System.Convert.
                ToString(myType.get_IsExplicitLayout()));
        }
        catch (System.Exception e) {
            Console.WriteLine("\nAn exception occurred: {0}.", e.get_Message());
        }
    } //MyIsExplicitLayoutMethod
} //MyTypeClass

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0 1.1 1.0

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft