(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

MethodBase.IsFamilyOrAssembly-Eigenschaft

Ruft einen Wert ab, der angibt, ob die potenzielle Sichtbarkeit dieser Methode oder dieses Konstruktors durch MethodAttributes.FamORAssem beschrieben wird, d. h., die Methode bzw. der Konstruktor kann von Klassen in derselben Assembly und von abgeleiteten Klassen abgerufen werden, wobei es keine Rolle spielt, an welcher Position sich diese befinden.

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

public bool IsFamilyOrAssembly { get; }

Eigenschaftswert

Typ: System.Boolean
true , wenn der Zugriff auf diese Methode oder diesen Konstruktor von MethodAttributes.FamORAssem genau beschrieben wird, andernfalls false.

Wenn für einen Typmember die Sichtbarkeit MethodAttributes.FamORAssem definiert ist, kann er von einem beliebigen Member in einer abgeleiteten Klasse oder von einem beliebigen Member in derselben Assembly aufgerufen werden, jedoch nicht von einem anderen Typ.

Die tatsächliche Sichtbarkeit einer Methode wird von der Sichtbarkeit ihres Typs beschränkt. Die IsFamilyOrAssembly-Eigenschaft kann für eine Methode true sein, wenn es sich jedoch um eine Methode eines privaten geschachtelten Typs handelt, ist diese außerhalb des enthaltenden Typs nicht sichtbar.

Die Sichtbarkeit einer Methode oder eines Konstruktors wird von MethodAttributes.FamORAssem genau beschrieben, wenn der Sichtbarkeitsmodifizierer in C# protected internal (Protected Friend in Visual Basic, protected public in C++) ist.

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

HinweisHinweis

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


using System;
using System.Reflection;

public class Example
{
    public void m_public() {}
    internal void m_internal() {}
    protected void m_protected() {}
    protected internal void m_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 (MethodBase m in typeof(Example).GetMethods(
            BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public))
        {
            if (m.Name.Substring(0, 1) == "m")
            {
                Console.WriteLine("{0,-21}{1,-9}{2,-9}{3,-9}{4,-9}{5,-9}", 
                    m.Name,
                    m.IsPublic,
                    m.IsAssembly,
                    m.IsFamily,
                    m.IsFamilyOrAssembly,
                    m.IsFamilyAndAssembly
                );
            }
        }
    }
}

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

                              IsAssembly        IsFamilyOrAssembly
                     IsPublic          IsFamily          IsFamilyAndAssembly

m_public             True     False    False    False    False
m_internal           False    True     False    False    False
m_protected          False    False    True     False    False
m_protected_public   False    False    False    True     False
 */


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt 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 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

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

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft