TypeAttributes TypeAttributes TypeAttributes TypeAttributes Enum

Definition

Gibt Typattribute an.Specifies type attributes.

Diese Enumeration weist ein FlagsAttribute-Attribut auf, die eine bitweise Kombination der Memberwerte zulässt.

public enum class TypeAttributes
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum TypeAttributes
type TypeAttributes = 
Public Enum TypeAttributes
Vererbung
TypeAttributesTypeAttributesTypeAttributesTypeAttributes
Attribute

Felder

Abstract Abstract Abstract Abstract 128

Gibt an, dass der Typ abstrakt ist.Specifies that the type is abstract.

AnsiClass AnsiClass AnsiClass AnsiClass 0

LPTSTR wird als ANSI-Code interpretiert.LPTSTR is interpreted as ANSI.

AutoClass AutoClass AutoClass AutoClass 131072

LPTSTR wird automatisch interpretiert.LPTSTR is interpreted automatically.

AutoLayout AutoLayout AutoLayout AutoLayout 0

Gibt an, dass das Layout der Klassenfelder automatisch durch die Common Language Runtime erfolgt.Specifies that class fields are automatically laid out by the common language runtime.

BeforeFieldInit BeforeFieldInit BeforeFieldInit BeforeFieldInit 1048576

Gibt an, dass durch den Aufruf von statischen Methoden des Typs nicht die Initialisierung dieses Typs durch das System erzwungen wird.Specifies that calling static methods of the type does not force the system to initialize the type.

Class Class Class Class 0

Gibt an, dass der Typ eine Klasse ist.Specifies that the type is a class.

ClassSemanticsMask ClassSemanticsMask ClassSemanticsMask ClassSemanticsMask 32

Gibt Informationen zur Klassensemantik an. Die aktuelle Klasse ist kontextabhängig (andernfalls beweglich).Specifies class semantics information; the current class is contextful (else agile).

CustomFormatClass CustomFormatClass CustomFormatClass CustomFormatClass 196608

LPSTR wird mit einigen implementierungsabhängigen Mitteln interpretiert. Dazu zählt auch die Möglichkeit, eine NotSupportedException auszulösen.LPSTR is interpreted by some implementation-specific means, which includes the possibility of throwing a NotSupportedException. Nicht verwendet in der Microsoft-Implementierung von .NET Framework.NET Framework.Not used in the Microsoft implementation of the .NET Framework.NET Framework.

CustomFormatMask CustomFormatMask CustomFormatMask CustomFormatMask 12582912

Wird verwendet, um nicht standardkonforme Codierungsinformationen für systemeigenes Interop abzurufen.Used to retrieve non-standard encoding information for native interop. Die Bedeutung der Werte dieser 2 Bits ist nicht festgelegt.The meaning of the values of these 2 bits is unspecified. Nicht verwendet in der Microsoft-Implementierung von .NET Framework.NET Framework.Not used in the Microsoft implementation of the .NET Framework.NET Framework.

ExplicitLayout ExplicitLayout ExplicitLayout ExplicitLayout 16

Gibt an, dass das Layout der Klassenfelder an den angegebenen Offsets erfolgt.Specifies that class fields are laid out at the specified offsets.

HasSecurity HasSecurity HasSecurity HasSecurity 262144

Dem Typ ist Sicherheit zugeordnet.Type has security associate with it.

Import Import Import Import 4096

Gibt an, dass die Klasse oder die Schnittstelle aus einem anderen Modul importiert wird.Specifies that the class or interface is imported from another module.

Interface Interface Interface Interface 32

Gibt an, dass der Typ eine Schnittstelle ist.Specifies that the type is an interface.

LayoutMask LayoutMask LayoutMask LayoutMask 24

Gibt Informationen zum Klassenlayout an.Specifies class layout information.

NestedAssembly NestedAssembly NestedAssembly NestedAssembly 5

Gibt an, dass die Klasse mit Assemblysichtbarkeit geschachtelt ist, und dass daher nur mit Methoden auf die Klasse zugegriffen werden kann, die sich in ihrer Assembly befinden.Specifies that the class is nested with assembly visibility, and is thus accessible only by methods within its assembly.

NestedFamANDAssem NestedFamANDAssem NestedFamANDAssem NestedFamANDAssem 6

Gibt an, dass die Klasse mit Assembly- und Familiensichtbarkeit geschachtelt ist und daher nur mit Methoden auf die Klasse zugegriffen werden kann, die zur Schnittmenge ihrer Familie und Assembly gehören.Specifies that the class is nested with assembly and family visibility, and is thus accessible only by methods lying in the intersection of its family and assembly.

NestedFamily NestedFamily NestedFamily NestedFamily 4

Gibt an, dass die Klasse mit Familiensichtbarkeit geschachtelt ist und daher nur mit Methoden auf die Klasse zugegriffen werden kann, die sich innerhalb des Typs oder eines beliebigen abgeleiteten Typs befinden.Specifies that the class is nested with family visibility, and is thus accessible only by methods within its own type and any derived types.

NestedFamORAssem NestedFamORAssem NestedFamORAssem NestedFamORAssem 7

Gibt an, dass die Klasse mit Assembly- oder Familiensichtbarkeit geschachtelt ist und daher nur mit Methoden auf die Klasse zugegriffen werden kann, die zur Gesamtmenge ihrer Familie und Assembly gehören.Specifies that the class is nested with family or assembly visibility, and is thus accessible only by methods lying in the union of its family and assembly.

NestedPrivate NestedPrivate NestedPrivate NestedPrivate 3

Gibt an, dass die Klasse mit privater Sichtbarkeit geschachtelt ist.Specifies that the class is nested with private visibility.

NestedPublic NestedPublic NestedPublic NestedPublic 2

Gibt an, dass die Klasse mit öffentlicher Sichtbarkeit geschachtelt ist.Specifies that the class is nested with public visibility.

NotPublic NotPublic NotPublic NotPublic 0

Gibt an, dass die Klasse nicht öffentlich ist.Specifies that the class is not public.

Public Public Public Public 1

Gibt an, dass die Klasse öffentlich ist.Specifies that the class is public.

ReservedMask ReservedMask ReservedMask ReservedMask 264192

Attribute, die für die Verwendung zur Laufzeit reserviert sind.Attributes reserved for runtime use.

RTSpecialName RTSpecialName RTSpecialName RTSpecialName 2048

Die Laufzeit muss die Namenscodierung überprüfen.Runtime should check name encoding.

Sealed Sealed Sealed Sealed 256

Gibt an, dass die Klasse konkret ist und nicht erweitert werden kann.Specifies that the class is concrete and cannot be extended.

SequentialLayout SequentialLayout SequentialLayout SequentialLayout 8

Gibt an, dass das Layout der Klassenfelder sequenziell in der Reihenfolge erfolgt, in der die Felder an die Metadaten ausgegeben wurden.Specifies that class fields are laid out sequentially, in the order that the fields were emitted to the metadata.

Serializable Serializable Serializable Serializable 8192

Gibt an, dass die Klasse serialisiert werden kann.Specifies that the class can be serialized.

SpecialName SpecialName SpecialName SpecialName 1024

Gibt an, dass der Name eine Besonderheit der Klasse bezeichnet.Specifies that the class is special in a way denoted by the name.

StringFormatMask StringFormatMask StringFormatMask StringFormatMask 196608

Wird zum Abrufen von Zeichenfolgeninformationen für die systemeigene Interoperabilität verwendet.Used to retrieve string information for native interoperability.

UnicodeClass UnicodeClass UnicodeClass UnicodeClass 65536

LPTSTR wird als UNICODE interpretiert.LPTSTR is interpreted as UNICODE.

VisibilityMask VisibilityMask VisibilityMask VisibilityMask 7

Gibt Informationen zur Sichtbarkeit des Typs an.Specifies type visibility information.

WindowsRuntime WindowsRuntime WindowsRuntime WindowsRuntime 16384

Gibt einen Windows-RuntimeWindows Runtime-Typ an.Specifies a Windows-RuntimeWindows Runtime type.

Beispiele

Das folgende Beispiel ruft den Wert der Attributes -Eigenschaft für Type Objekte ab, die eine Reihe verschiedener Typen darstellen, und bestimmt dann, ob einzelne Attributflags festgelegt wurden.The following example retrieves the value of the Attributes property for Type objects that represent a number of different types, and then determines whether individual attribute flags have been set.

using System;
using System.Reflection;

internal struct S
{
    public int X;
}

public abstract class Example
{
    protected sealed class NestedClass {}

    public interface INested {}

    public static void Main()
    {
        // Create an array of types.
        Type[] types = { typeof(Example), typeof(NestedClass),
                         typeof(INested), typeof(S) };

        foreach (var t in types) 
        {
           Console.WriteLine("Attributes for type {0}:", t.Name);

           TypeAttributes attr = t.Attributes;

           // To test for visibility attributes, you must use the visibility mask.
           TypeAttributes visibility = attr & TypeAttributes.VisibilityMask;
           switch (visibility)
           {
               case TypeAttributes.NotPublic:
                   Console.WriteLine("   ...is not public");
                   break;
               case TypeAttributes.Public:
                   Console.WriteLine("   ...is public");
                   break;
               case TypeAttributes.NestedPublic:
                   Console.WriteLine("   ...is nested and public");
                   break;
               case TypeAttributes.NestedPrivate:
                   Console.WriteLine("   ...is nested and private");
                   break;
               case TypeAttributes.NestedFamANDAssem:
                   Console.WriteLine("   ...is nested, and inheritable only within the assembly" +
                      "\n         (cannot be declared in C#)");
                   break;
               case TypeAttributes.NestedAssembly:
                   Console.WriteLine("   ...is nested and internal");
                   break;
               case TypeAttributes.NestedFamily:
                   Console.WriteLine("   ...is nested and protected");
                   break;
               case TypeAttributes.NestedFamORAssem:
                   Console.WriteLine("   ...is nested and protected internal");
                   break;
           }

           // Use the layout mask to test for layout attributes.
           TypeAttributes layout = attr & TypeAttributes.LayoutMask;
           switch (layout)
           {
               case TypeAttributes.AutoLayout:
                   Console.WriteLine("   ...is AutoLayout");
                   break;
               case TypeAttributes.SequentialLayout:
                   Console.WriteLine("   ...is SequentialLayout");
                   break;
               case TypeAttributes.ExplicitLayout:
                   Console.WriteLine("   ...is ExplicitLayout");
                   break;
           }

           // Use the class semantics mask to test for class semantics attributes.
           TypeAttributes classSemantics = attr & TypeAttributes.ClassSemanticsMask;
           switch (classSemantics)
           {
               case TypeAttributes.Class:
                   if (t.IsValueType)
                   {
                       Console.WriteLine("   ...is a value type");
                   }
                   else
                   {
                       Console.WriteLine("   ...is a class");
                   }
                   break;
               case TypeAttributes.Interface:
                   Console.WriteLine("   ...is an interface");
                   break;
           }

           if ((attr & TypeAttributes.Abstract) != 0)
           {
               Console.WriteLine("   ...is abstract");
           }

           if ((attr & TypeAttributes.Sealed) != 0)
           {
               Console.WriteLine("   ...is sealed");
           }
           
           Console.WriteLine();
       }
    }
}
// The example displays the following output:
// Attributes for type Example:
//    ...is public
//    ...is AutoLayout
//    ...is a class
//    ...is abstract

// Attributes for type NestedClass:
//    ...is nested and protected
//    ...is AutoLayout
//    ...is a class
//    ...is sealed

// Attributes for type INested:
//    ...is nested and public
//    ...is AutoLayout
//    ...is an interface
//    ...is abstract

// Attributes for type S:
//    ...is not public
//    ...is SequentialLayout
//    ...is a value type
//    ...is sealed
Imports System.Reflection

Friend Structure S
    Public X As Integer
End Structure

Public MustInherit Class Example
    Protected NotInheritable Class NestedClass
    End Class

    Public Interface INested
    End Interface

    Public Shared Sub Main()
        ' Create an array of types.
        Dim types() As Type = { GetType(Example), GetType(NestedClass),
                                GetType(INested), GetType(S) }

        For Each t In types
           Console.WriteLine("Attributes for type {0}:", t.Name)

           Dim attr As TypeAttributes = t.Attributes

           ' Use the visibility mask to test for visibility attributes.
           Dim visibility As TypeAttributes = attr And TypeAttributes.VisibilityMask
           Select Case visibility
               Case TypeAttributes.NotPublic:
                   Console.WriteLine("   ...is not Public")
               Case TypeAttributes.Public:
                   Console.WriteLine("   ...is Public")
               Case TypeAttributes.NestedPublic:
                   Console.WriteLine("   ...is nested and Public")
               Case TypeAttributes.NestedPrivate:
                   Console.WriteLine("   ...is nested and Private")
               Case TypeAttributes.NestedFamANDAssem:
                   Console.WriteLine("   ...is nested, and inheritable only within the assembly" & _
                      vbLf & "         (cannot be declared in Visual Basic)")
               Case TypeAttributes.NestedAssembly:
                   Console.WriteLine("   ...is nested and Friend")
               Case TypeAttributes.NestedFamily:
                   Console.WriteLine("   ...is nested and Protected")
               Case TypeAttributes.NestedFamORAssem:
                   Console.WriteLine("   ...is nested and Protected Friend")
           End Select

           ' Use the layout mask to test for layout attributes.
           Dim layout As TypeAttributes = attr And TypeAttributes.LayoutMask
           Select Case layout
               Case TypeAttributes.AutoLayout:
                   Console.WriteLine("   ...is AutoLayout")
               Case TypeAttributes.SequentialLayout:
                   Console.WriteLine("   ...is SequentialLayout")
               Case TypeAttributes.ExplicitLayout:
                   Console.WriteLine("   ...is ExplicitLayout")
           End Select

           ' Use the class semantics mask to test for class semantics attributes.
           Dim classSemantics As TypeAttributes = attr And TypeAttributes.ClassSemanticsMask
           Select Case classSemantics
               Case TypeAttributes.Class:
                   If t.IsValueType Then
                       Console.WriteLine("   ...is a value type")
                   Else
                       Console.WriteLine("   ...is a class")
                   End If
               Case TypeAttributes.Interface:
                   Console.WriteLine("   ...is an interface")
           End Select

           If 0 <> (attr And TypeAttributes.Abstract) Then _
               Console.WriteLine("   ...is MustInherit")

           If 0 <> (attr And TypeAttributes.Sealed) Then _
               Console.WriteLine("   ...is NotInheritable")
           Console.WriteLine()
       Next
    End Sub
End Class
' The example displays the following output:
'       Attributes for type Example:
'          ...is Public
'          ...is AutoLayout
'          ...is a class
'          ...is MustInherit
'
'       Attributes for type NestedClass:
'          ...is nested and Protected
'          ...is AutoLayout
'          ...is a class
'          ...is NotInheritable
'
'       Attributes for type INested:
'          ...is nested and Public
'          ...is AutoLayout
'          ...is an interface
'          ...is MustInherit
'
'       Attributes for type S:
'          ...is not Public
'          ...is SequentialLayout
'          ...is a value type
'          ...is NotInheritable

Hinweise

Einige Member der TypeAttributes -Enumeration sind Masken, die eine Reihe von sich gegenseitig ausschließenden Attributen darstellen.Some of the members of the TypeAttributes enumeration are masks that represent a set of mutually exclusive attributes. Der VisibilityMask -Member schließt z. b NotPublic. die NestedPublicMember NestedPrivate, NestedFamily Public, NestedAssembly, NestedFamANDAssem,, NestedFamORAssem , und ein.For example, the VisibilityMask member includes the NotPublic, Public, NestedPublic, NestedPrivate, NestedFamily, NestedAssembly, NestedFamANDAssem, and NestedFamORAssem members. Da jeder Attribut Satz ein Element enthält, dessen zugrunde liegender Wert 0 (NULL And ) ist, sollten Sie zuerst den Wert System.Reflection.TypeAttributes der Maske mit dem spezifischen Wert abrufen Type.Attributes, der von einer Eigenschaft wie abgerufen wird.Because each attribute set includes a member whose underlying value is zero, you should first And the value of the mask with the specific System.Reflection.TypeAttributes value retrieved from a property such as Type.Attributes. In der folgenden Tabelle sind die Masken und die einzelnen Member aufgelistet, die Sie enthalten:The following table lists the masks and the individual members that they include:

FormatMask EnthältIncludes
VisibilityMaskVisibilityMask NotPublicNotPublic
PublicPublic
NestedPublicNestedPublic
NestedPrivateNestedPrivate
"Netstedfamily"NestedFamily
NestedAssemblyNestedAssembly
NestedFamANDAssemNestedFamANDAssem
NestedFamORAssemNestedFamORAssem
LayoutMaskLayoutMask AutoLayoutAutoLayout
SequentialLayoutSequentialLayout
ExplizerlayoutExplicitLayout
ClassSemanticsMaskClassSemanticsMask KlasseClass
InterfaceInterface
StringFormatMaskStringFormatMask AnsiClassAnsiClass
UnicodeClassUnicodeClass
AutoclassAutoClass
CustomFormatClassCustomFormatClass
CustomFormatMaskCustomFormatMask Keine Mitglieder.No members.

Die Member dieser Enumeratorklasse stimmen mit dem CorTypeAttr-Enumerator ab, wie in der Datei "corhdr. h" definiert.The members of this enumerator class match the CorTypeAttr enumerator as defined in the corhdr.h file.

Gilt für: