Esporta (0) Stampa
Espandi tutto
Espandi Riduci a icona
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Proprietà Type.IsExplicitLayout

Ottiene un valore che indica se i campi del tipo corrente sono disposti a offset specificati in modo esplicito.

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

public bool IsExplicitLayout { get; }

Valore proprietà

Tipo: System.Boolean
true se la proprietà Attributes del tipo corrente include TypeAttributes.ExplicitLayout; in caso contrario, false.

Implementa

_Type.IsExplicitLayout

Questa proprietà viene fornita per praticità. In alternativa, è possibile utilizzare il valore di enumerazione TypeAttributes.LayoutMask per selezionare gli attributi del layout del tipo e quindi verificare se TypeAttributes.ExplicitLayout è impostato. TypeAttributes.AutoLayout , TypeAttributes.ExplicitLayout e i valori di enumerazione TypeAttributes.SequentialLayout indicano il modo in cui i campi del tipo vengono strutturati in memoria.

Per i tipi dinamici, è possibile specificare TypeAttributes.ExplicitLayout quando si crea il tipo. Nel codice, applicare l'attributo StructLayoutAttribute con il valore di enumerazione LayoutKind.Explicit al tipo, per specificare che gli offset all'inizio dei campi sono specificati in modo esplicito.

NotaNota

Non è possibile utilizzare il metodo GetCustomAttributes per determinare se StructLayoutAttribute è stato applicato a un tipo.

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 Type corrente 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 seguente viene creata un'istanza di un tipo e viene visualizzato il valore della relativa proprietà IsExplicitLayout. Viene utilizzata la classe MySystemTime, inclusa anche nell'esempio di codice relativo a StructLayoutAttribute.


using System;
using System.Reflection;
using System.ComponentModel;
using System.Runtime.InteropServices;


// Class to test for the ExplicitLayout property.
[StructLayout(LayoutKind.Explicit, Size=16, CharSet=CharSet.Ansi)]
public class MySystemTime
{
   [FieldOffset(0)]public ushort wYear;
   [FieldOffset(2)]public ushort wMonth;
   [FieldOffset(4)]public ushort wDayOfWeek;
   [FieldOffset(6)]public ushort wDay;
   [FieldOffset(8)]public ushort wHour;
   [FieldOffset(10)]public ushort wMinute;
   [FieldOffset(12)]public ushort wSecond;
   [FieldOffset(14)]public ushort wMilliseconds;
}

public class Program
{
    public static void Main(string[] args)
    {
        // Create an instance of the type using the GetType method.
        Type  t = typeof(MySystemTime);
        // Get and display the IsExplicitLayout property.
        Console.WriteLine("\nIsExplicitLayout for MySystemTime is {0}.",
            t.IsExplicitLayout);
    }
}


.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

.NET per applicazioni Windows Phone

Supportato in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

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

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft