FieldInfo.IsFamilyOrAssembly 속성

정의

FamORAssem에서 이 필드의 잠재적 표시 유형을 설명하는지 여부를 나타내는 값을 가져옵니다. 즉, 이 필드는 파생 클래스(있는 경우) 및 같은 어셈블리의 클래스에서 액세스할 수 있습니다.Gets a value indicating whether the potential visibility of this field is described by FamORAssem; that is, the field can be accessed by derived classes wherever they are, and by classes in the same assembly.

public:
 property bool IsFamilyOrAssembly { bool get(); };
public bool IsFamilyOrAssembly { get; }
member this.IsFamilyOrAssembly : bool
Public ReadOnly Property IsFamilyOrAssembly As Boolean

속성 값

FamORAssem에서 이 필드에 대한 액세스를 정확하게 설명하면 true이고, 그렇지 않으면 false입니다.true if access to this field is exactly described by FamORAssem; otherwise, false.

구현

예제

다음 코드 예제에서는 다양 한 수준의 가시성을 사용 하 여 필드를 정의 하 고 값이 표시 됩니다 자신의 IsAssembly, IsFamilyIsFamilyOrAssembly, 및 IsFamilyAndAssembly 속성입니다.The following code example defines fields with varying levels of visibility, and displays the values of their IsAssembly, IsFamily, IsFamilyOrAssembly, and IsFamilyAndAssembly properties.

참고

Visual Basic 및 C# 언어를 사용 하 여 필드를 정의할 수 없습니다 FieldAttributes.FamANDAssem 가시성; 액세스 수준 c + + 예제 나타나도록 합니다.The Visual Basic and C# languages cannot define fields with FieldAttributes.FamANDAssem visibility; that access level appears only in the C++ example.

using namespace System;
using namespace System::Reflection;

public ref class Example
{
public:
    int f_public;
internal:
    int f_internal;
protected:
    int f_protected;
protected public:
    int f_protected_public;
protected private:
    int f_protected_private;
};

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");

    for each (FieldInfo^ f in Example::typeid->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
f_protected_private  False    False    False    False    True
 */
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
 */
Imports System.Reflection

Public class Example

    Public f_Public As Integer
    Friend f_Friend As Integer 
    Protected f_Protected As Integer
    Protected Friend f_Protected_Friend As Integer

    Public Shared Sub Main()
    
        Console.WriteLine(vbCrLf & _
            "{0,-30}{1,-18}{2}", "", "IsAssembly", "IsFamilyOrAssembly") 
        Console.WriteLine("{0,-21}{1,-18}{2,-18}{3}" & vbCrLf, _
            "", "IsPublic", "IsFamily", "IsFamilyAndAssembly")
   
        For Each f As FieldInfo In GetType(Example).GetFields( _
            BindingFlags.Instance Or BindingFlags.NonPublic Or 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 _
            )
        Next
    End Sub
End Class

' This code example produces output similar to the following:
'
'                              IsAssembly        IsFamilyOrAssembly
'                     IsPublic          IsFamily          IsFamilyAndAssembly
'
'f_Public             True     False    False    False    False
'f_Friend             False    True     False    False    False
'f_Protected          False    False    True     False    False
'f_Protected_Friend   False    False    False    True     False

설명

필드에 있으면 FamORAssem 수준 표시 유형이 호출 될 수 파생된 클래스에서 모든 멤버 또는 멤버는 같은 어셈블리에 있지만 다른 형식에서는 상속할 수 없습니다.If a field has FamORAssem level visibility, it can be called from any member in a derived class or any member in the same assembly, but not from any other type.

필드의 실제 표시 여부는 해당 형식의 표시 유형과로 제한 됩니다.The actual visibility of a field is limited by the visibility of its type. 합니다 IsFamilyOrAssembly 속성 수 있습니다 true 필드의 경우 있지만 경우 private 중첩 된 형식의 필드는 필드를 포함 하는 형식 외부에서 볼 수 없습니다.The IsFamilyOrAssembly property might be true for a field, but if it is a field of a private nested type then the field is not visible outside the containing type.

필드의 표시 유형을 정확 하 게 설명 됩니다 FieldAttributes.FamORAssem 표시 한정자가 하는 경우 protected internal C#에서 (Protected Friend Visual basic에서는 protected public c + +에서).The visibility of a field is exactly described by FieldAttributes.FamORAssem if the visibility modifier is protected internal in C# (Protected Friend in Visual Basic, protected public in C++).

적용 대상

추가 정보