MethodBase.IsFamilyOrAssembly Özellik

Tanım

Bu yöntemin veya oluşturucunun olası görünürlüğünün ile FamORAssemaçıklanıp açıklanmadığını belirten bir değer alır; başka bir ifadeyle, yöntem veya oluşturucu nerede olurlarsa olsunlar türetilmiş sınıflar tarafından ve aynı derlemedeki sınıflar tarafından çağrılabilir.

C#
public bool IsFamilyOrAssembly { get; }

Özellik Değeri

true bu yönteme veya oluşturucuya erişim tarafından tam olarak açıklanmışsa FamORAssem; aksi takdirde , false.

Uygulamalar

Örnekler

Aşağıdaki kod örneği, farklı görünürlük düzeylerine sahip yöntemleri tanımlar ve bunların IsAssembly, IsFamily, IsFamilyOrAssemblyve IsFamilyAndAssembly özelliklerinin değerlerini görüntüler.

C#
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() {}
    private protected void m_private_protected() {}

    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
m_private_protected  False    False    False    False    True
 */

Açıklamalar

Bir tür üyesi görünürlüğe sahipse MethodAttributes.FamORAssem , türetilmiş bir sınıftaki herhangi bir üyeden veya aynı derlemedeki herhangi bir üyeden çağrılabilir, ancak başka bir türden çağrılabilir.

Bir yöntemin gerçek görünürlüğü, türünün görünürlüğüyle sınırlıdır. IsFamilyOrAssembly özelliği bir yönteme yönelik olabilirtrue, ancak özel bir iç içe türün yöntemiyse, yöntemi içeren türün dışında görünmez.

Bir yöntemin veya oluşturucunun görünürlüğü, görünürlük değiştiricisi protected internal C# içindeyse (Protected FriendVisual Basic'te, protected public C++'ta) ile MethodAttributes.FamORAssem tam olarak açıklanmıştır.

Şunlara uygulanır

Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Ayrıca bkz.