次の方法で共有


FieldInfo.IsFamily プロパティ

このフィールドに、ファミリ レベルの参照可能範囲が設定されているかどうかを示す値を取得します。

Public ReadOnly Property IsFamily As Boolean
[C#]
public bool IsFamily {get;}
[C++]
public: __property bool get_IsFamily();
[JScript]
public function get IsFamily() : Boolean;

プロパティ値

フィールドに Family 属性が設定されている場合は true 。それ以外の場合は false

解説

このプロパティは派生クラスのすべてのメンバから呼び出せますが、他の型からは呼び出せません。

IsFamily プロパティを取得するには、最初に Type クラスを取得します。そして、その Type から FieldInfo を取得します。最後に、 FieldInfo から IsFamily を取得します。

IsFamily プロパティは、 FieldAttributes.Family 属性が設定されたときに設定されます。

使用例

2 つのプロパティを作成する例を次に示します。最初のプロパティにはプライベート文字列フィールドがあり、2 番目のプロパティにはプロテクト文字列フィールドがあります。そのため、 IsFamily プロパティに true が設定されます。

 
Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic


'Make two fields.

Public Class Myfielda
    Private field As String = "A private field"

    Public Property MyField() As String
        Get
            Return Field
        End Get
        Set(ByVal Value As String)
            If field <> Value Then
                field = Value
            End If
        End Set
    End Property
End Class 'Myfielda

Public Class Myfieldb
    Protected field As String = "B public field"

    Public Property MyField() As String
        Get
            Return Field
        End Get
        Set(ByVal Value As String)
            If field <> Value Then
                field = Value
            End If
        End Set
    End Property
End Class 'Myfieldb

Public Class Myfieldinfo

    Public Shared Function Main() As Integer
        Console.WriteLine(ControlChars.Lf & "Reflection.FieldInfo")
        Dim Myfielda As New Myfielda()
        Dim Myfieldb As New Myfieldb()

        ' Get the Type and FieldInfo.
        Dim MyTypea As Type = Type.GetType("Myfielda")
        Dim Myfieldinfoa As FieldInfo = MyTypea.GetField("field", BindingFlags.NonPublic Or BindingFlags.Instance)
        Dim MyTypeb As Type = Type.GetType("Myfieldb")
        Dim Myfieldinfob As FieldInfo = MyTypeb.GetField("field", BindingFlags.NonPublic Or BindingFlags.Instance)

        ' For the first field, get and display the Name, field, and IsFamily.
        Console.Write(ControlChars.Lf & "{0} - ", MyTypea.FullName)
        Console.Write("{0} - ", Myfieldinfoa.GetValue(Myfielda))
        Console.Write(ControlChars.Lf & "  IsFamily - {0}", Myfieldinfoa.IsFamily)
        Console.Write(ControlChars.Lf & "  FieldAttributes - {0}", Myfieldinfoa.Attributes.ToString())

        ' For the second field, get and Display the Name, field, and IsFamily.
        Console.WriteLine()
        Console.Write(ControlChars.Lf & "{0} - ", MyTypeb.FullName)
        Console.Write("{0} - ", Myfieldinfob.GetValue(Myfieldb))
        Console.Write(ControlChars.Lf & "  IsFamily - {0}", Myfieldinfob.IsFamily)
        Dim Myfieldattributesb As FieldAttributes = Myfieldinfob.Attributes
        Console.Write(ControlChars.Lf & "  FieldAttributes - {0}", Myfieldinfob.Attributes.ToString())

        Return 0
    End Function 'Main
End Class 'Myfieldinfo

[C#] 
using System;
using System.Reflection;

//Make two fields.
public class Myfielda
{
    private string field = "A private field";
    public string Field
    {
        get{return field;}
        set{if(field!=value){field=value;}}
    }
}
 
public class Myfieldb
{
    protected string field = "B public field";
    public string Field
    {
        get{return field;}
        set{if(field!=value){field=value;}}
    }
}
  
public class Myfieldinfo
{
    public static int Main()
    {
        Console.WriteLine("\nReflection.FieldInfo");
        Myfielda Myfielda = new Myfielda();
        Myfieldb Myfieldb = new Myfieldb();
  
        // Get the Type and FieldInfo.
        Type MyTypea = Type.GetType("Myfielda");
        FieldInfo Myfieldinfoa = MyTypea.GetField("field",
            BindingFlags.NonPublic|BindingFlags.Instance);
        Type MyTypeb = Type.GetType("Myfieldb");
        FieldInfo Myfieldinfob = MyTypeb.GetField("field",
            BindingFlags.NonPublic|BindingFlags.Instance);
  
        // For the first field, get and display the Name, field, and IsFamily.
        Console.Write("\n{0} - ", MyTypea.FullName);
        Console.Write("{0} - ", Myfieldinfoa.GetValue(Myfielda));
        Console.Write("\n  IsFamily - {0}", Myfieldinfoa.IsFamily);
        Console.Write("\n  FieldAttributes - {0}",
            Myfieldinfoa.Attributes.ToString());
  
        // For the second field, get and Display the Name, field, and IsFamily.
        Console.WriteLine();
        Console.Write("\n{0} - ", MyTypeb.FullName);
        Console.Write("{0} - ", Myfieldinfob.GetValue(Myfieldb));
        Console.Write("\n  IsFamily - {0}", Myfieldinfob.IsFamily);
        FieldAttributes Myfieldattributesb = Myfieldinfob.Attributes;
        Console.Write("\n  FieldAttributes - {0}",
            Myfieldinfob.Attributes.ToString());
  
        return 0;
    }
}

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::Reflection;

//Make two fields.
public __gc class Myfielda
{
private:
    String* field;
public:
    Myfielda() : field(S"A private field") {}
    __property String* get_Field() {
        return field;
    }
    __property void set_Field(String* value) {
        if(field!=value){
            field=value;
        }
    }
};

public __gc class Myfieldb
{
protected:
    String* field;
public:
    Myfieldb() : field(S"B public field") {}
    __property String* get_Field() {
        return field;
    }
    __property void set_Field(String* value) {
        if(field!=value){
            field=value;
        }
    }
};

int main()
{
    Console::WriteLine(S"\nReflection.FieldInfo");
    Myfielda* myfielda = new Myfielda();
    Myfieldb* myfieldb = new Myfieldb();

    // Get the Type and FieldInfo.
    Type* MyTypea = Type::GetType(S"Myfielda");
    FieldInfo* Myfieldinfoa = MyTypea->GetField(S"field",static_cast<BindingFlags>(BindingFlags::NonPublic|BindingFlags::Instance));
    Type* MyTypeb = Type::GetType(S"Myfieldb");
    FieldInfo* Myfieldinfob = MyTypeb->GetField(S"field",static_cast<BindingFlags>(BindingFlags::NonPublic|BindingFlags::Instance));

    // For the first field, get and display the Name, field, and IsFamily.
    Console::Write(S"\n{0} - ", MyTypea->FullName);
    Console::Write(S"{0} - ", Myfieldinfoa->GetValue(myfielda));
    Console::Write(S"\n  IsFamily - {0}", __box(Myfieldinfoa->IsFamily));
    Console::Write(S"\n  FieldAttributes - {0}", __box(Myfieldinfoa->Attributes));

    // For the second field, get and Display the Name, field, and IsFamily.
    Console::WriteLine();
    Console::Write(S"\n{0} - ", MyTypeb->FullName);
    Console::Write(S"{0} - ", Myfieldinfob->GetValue(myfieldb));
    Console::Write(S"\n  IsFamily - {0}", __box(Myfieldinfob->IsFamily));
    Console::Write(S"\n  FieldAttributes - {0}", __box(Myfieldinfob->Attributes));

    return 0;
}

[JScript] 
//Make two fields.
import System;
import System.Reflection;

public class Myfielda
{
   private var field : String = "A private field";
   public function get Field() : String {
       return field;
   }
   public function set Field(value : String) {    
       if (field!=value) field=value;
   }
}

public class Myfieldb
{
   protected var field : String = "B public field";
   public function get Field() : String {
       return field;
   }
   public function set Field(value : String) {    
      if (field!=value) field=value;
   }
}
 
public class Myfieldinfo
{
   public static function Main() : void
   {
      Console.WriteLine("\nReflection.FieldInfo");
      var myfielda : Myfielda = new Myfielda();
      var myfieldb : Myfieldb = new Myfieldb();
 
      //Get the Type and FieldInfo.
      var MyTypea : Type = Type.GetType("Myfielda");
      var Myfieldinfoa : FieldInfo = MyTypea.GetField("field", BindingFlags.Instance|BindingFlags.NonPublic);
      var MyTypeb : Type = Type.GetType("Myfieldb");
      var Myfieldinfob : FieldInfo = MyTypeb.GetField("field", BindingFlags.Instance|BindingFlags.NonPublic);
 
      //For the first field, get and display the Name, field, and IsFamily.
      Console.Write("\n{0} - ", MyTypea.FullName);
      Console.Write("{0} - ", Myfieldinfoa.GetValue(myfielda));
      Console.Write("\n  IsFamily - {0}", Myfieldinfoa.IsFamily);
      Console.Write("\n  FieldAttributes - {0}",
         Myfieldinfoa.Attributes.ToString());
 
      //For the second field, get and Display the Name, field, and IsFamily.
      Console.Write("\n{0} - ", MyTypeb.FullName);
      Console.Write("{0} - ", Myfieldinfob.GetValue(myfieldb));
      Console.Write("\n  IsFamily - {0}", Myfieldinfob.IsFamily);
      var Myfieldattributesb : FieldAttributes = Myfieldinfob.Attributes;
      Console.Write("\n  FieldAttributes - {0}",
         Myfieldinfob.Attributes.ToString());
   }
}
Myfieldinfo.Main();

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

FieldInfo クラス | FieldInfo メンバ | System.Reflection 名前空間 | FieldAttributes | Type