Exportieren (0) Drucken
Alle erweitern

FieldInfo.IsFamilyAndAssembly-Eigenschaft

Aktualisiert: November 2007

Ruft einen Wert ab, der angibt, ob die Sichtbarkeit dieses Felds von FieldAttributes.FamANDAssem beschrieben wird, d. h., auf das Feld kann von abgeleiteten Klassen zugegriffen werden, jedoch nur, wenn sich diese in derselben Assembly befinden.

Namespace:  System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

public bool IsFamilyAndAssembly { get; }
/** @property */
public final boolean get_IsFamilyAndAssembly()

public final function get IsFamilyAndAssembly () : boolean

Eigenschaftenwert

Typ: System.Boolean
true, wenn der Zugriff auf dieses Feld von FieldAttributes.FamANDAssem genau beschrieben wird, andernfalls false.

Implementiert

_FieldInfo.IsFamilyAndAssembly

Wenn für ein Feld die Sichtbarkeitsstufe FamANDAssem definiert ist, kann es ausschließlich von den Membern einer abgeleiteten Klasse innerhalb der gleichen Assembly aufgerufen werden, nicht jedoch von anderen Typen.

Die Sichtbarkeit eines Felds wird von FieldAttributes.FamANDAssem in C++ genau beschrieben, wenn der Sichtbarkeitsmodifizierer protected private ist. Felder mit dieser Sichtbarkeit können nicht in Visual Basic oder C# definiert werden.

Im folgenden Codebeispiel werden Felder mit unterschiedlicher Sichtbarkeitsstufe definiert. Zudem werden die Werte ihrer Eigenschaften IsAssembly, IsFamily, IsFamilyOrAssembly und IsFamilyAndAssembly angezeigt.

04dz7e4h.alert_note(de-de,VS.90).gifHinweis:

In den Sprachen Visual Basic und C# können keine Felder mit einer Sichtbarkeit von FieldAttributes.FamANDAssem definiert werden. Eine solche Zugriffsebene wird nur im C++-Beispiel angezeigt.

using System;
using System.Reflection;

public class Example
{
    public int f_public;
    internal int f_internal;
    protected int f_protected;
    protected internal int f_protected_public;

    public static void Main()
    {
        Console.WriteLine("\n{0,-30}{1,-18}{2}", "", "IsAssembly", "IsFamilyOrAssembly"); 
        Console.WriteLine("{0,-21}{1,-18}{2,-18}{3}\n", 
            "", "IsPublic", "IsFamily", "IsFamilyAndAssembly");

        foreach (FieldInfo f in typeof(Example).GetFields(
            BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public))
        {
            Console.WriteLine("{0,-21}{1,-9}{2,-9}{3,-9}{4,-9}{5,-9}", 
                f.Name,
                f.IsPublic,
                f.IsAssembly,
                f.IsFamily,
                f.IsFamilyOrAssembly,
                f.IsFamilyAndAssembly
            );
        }
    }
}

/* This code example produces output similar to the following:

                              IsAssembly        IsFamilyOrAssembly
                     IsPublic          IsFamily          IsFamilyAndAssembly

f_public             True     False    False    False    False
f_internal           False    True     False    False    False
f_protected          False    False    True     False    False
f_protected_public   False    False    False    True     False
 */


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile für Smartphone, Windows Mobile für Pocket PC, Xbox 360

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 3.5, 2.0, 1.0

XNA Framework

Unterstützt in: 2.0, 1.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft