MethodBase.IsFamilyOrAssembly 속성

정의

FamORAssem에서 이 메서드나 생성자의 잠재적 표시 유형을 설명하는지 여부를 나타내는 값을 가져옵니다. 즉, 이 메서드나 생성자는 파생 클래스(있는 경우) 및 같은 어셈블리의 클래스에서 호출할 수 있습니다.

public bool IsFamilyOrAssembly { get; }

속성 값

FamORAssem에서 이 메서드나 생성자에 대한 액세스를 정확하게 설명하면 true이고, 그렇지 않으면 false입니다.

구현

예제

다음 코드 예제에서는 다양한 수준의 표시 유형을 사용하여 메서드를 정의하고 , , IsFamilyIsFamilyOrAssemblyIsFamilyAndAssembly 속성의 IsAssembly값을 표시합니다.

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
 */

설명

형식 멤버에 표시 유형이 있는 MethodAttributes.FamORAssem 경우 파생 클래스의 멤버 또는 동일한 어셈블리의 멤버에서 호출할 수 있지만 다른 형식에서는 호출할 수 없습니다.

메서드의 실제 표시 유형은 형식의 표시 유형에 따라 제한됩니다. 속성은 IsFamilyOrAssembly 메서드에 대한 것일 true 수 있지만 프라이빗 중첩 형식의 메서드인 경우 메서드는 포함하는 형식 외부에 표시되지 않습니다.

메서드 또는 생성자의 표시 유형은 표시 유형 한정자가 protected internal C#(Protected FriendVisual Basic protected public 의 경우 C++)에 있는 경우 에 의해 MethodAttributes.FamORAssem 정확하게 설명됩니다.

적용 대상

제품 버전
.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
.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

추가 정보