_FieldInfo.IsInitOnly プロパティとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > _FieldInfo.IsInitOnly プロパティの意味・解説 

_FieldInfo.IsInitOnly プロパティ

メモ : このプロパティは、.NET Framework version 2.0新しく追加されたものです。

COM オブジェクトに、IsInitOnly プロパティへのバージョン依存しないアクセス用意されています。

このプロパティは、CLS準拠していません。  

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Dim instance As _FieldInfo
Dim value As Boolean

value = instance.IsInitOnly
bool IsInitOnly { get; }
property bool IsInitOnly {
    bool get ();
}
/** @property */
boolean get_IsInitOnly ()

プロパティ
フィールドInitOnly 属性設定されている場合trueそれ以外場合false

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
_FieldInfo インターフェイス
_FieldInfo メンバ
System.Runtime.InteropServices 名前空間

FieldInfo.IsInitOnly プロパティ

フィールドコンストラクタ本体だけでしか設定できないかどうかを示す値を取得します

名前空間: System.Reflection
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Dim instance As FieldInfo
Dim value As Boolean

value = instance.IsInitOnly
public bool IsInitOnly { get;
 }
/** @property */
public final boolean get_IsInitOnly ()

プロパティ
フィールドInitOnly 属性設定されている場合trueそれ以外場合false

解説解説

戻り値true場合フィールド初期化できますが、初期化後は読み取り専用なります

IsInitOnly プロパティ取得するには、最初に Type クラス取得します。そして、その Type から FieldInfo取得します最後にFieldInfo から IsInitOnly プロパティ取得します。非パブリック フィールドアクセスするには、GetField メソッド内で、BindingFlags.Static と BindingFlags.Instance のいずれか、または両方を、BindingFlags.NonPublic と組み合わせて使用します

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

使用例使用例

2 つフィールド作成する例を次に示します2 番目のフィールド読み取り専用で、対応する set アクセサがなく、IsInitOnlytrue設定されています。

Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic


'Make two fields, one public and one read-only.
Public Class Myfielda
    Public field As String
 = "A - public modifiable field"
End Class 'Myfielda

Public Class Myfieldb
    Public ReadOnly field As
 String = "B - readonly field"
End Class 'Myfieldb

Public Class Myfieldinfo
    Public Shared Function
 Main() As Integer
        Console.WriteLine("Reflection.FieldInfo")
        Console.WriteLine()
        Dim Myfielda As New
 Myfielda()
        Dim Myfieldb As New
 Myfieldb()

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

        'Modify the fields.
        'Note that Myfieldb is not modified, as it is
        'read-only (IsInitOnly is True).
        Myfielda.field = "A - modified"
        'For the first field, get and display the name, field, and IsInitOnly
 state.
        Console.WriteLine("{0} - {1}, IsInitOnly = {2} ",
 MyTypea.FullName, _
            Myfieldinfoa.GetValue(Myfielda), Myfieldinfoa.IsInitOnly)
        'For the second field get and display the name, field, and IsInitOnly
 state.
        Console.WriteLine("{0} - {1}, IsInitOnly = {2} ",
 MyTypeb.FullName, _
            Myfieldinfob.GetValue(Myfieldb), Myfieldinfob.IsInitOnly)

        Return 0
    End Function 'Main
End Class 'Myfieldinfo
using System;
using System.Reflection;

 //Make two fields, one public and one read-only.
public class Myfielda
{
    public string field = "A - public
 modifiable field";
}
public class Myfieldb
{
    public readonly string field = "B
 - readonly field";
}
 
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 = typeof(Myfielda);
        FieldInfo Myfieldinfoa = MyTypea.GetField("field",
            BindingFlags.Public | BindingFlags.Instance);
        Type MyTypeb = typeof(Myfieldb);
        FieldInfo Myfieldinfob = MyTypeb.GetField("field",
            BindingFlags.Public | BindingFlags.Instance);
  
        //Modify the fields.
        //Note that Myfieldb is not modified, as it is
        //read-only (IsInitOnly is True).
        Myfielda.field = "A - modified";
        //Myfieldb.field = "B - modified";
  
        //For the first field, get and display the name, field, and
 IsInitOnly state.
        Console.Write("\n{0} - {1}, IsInitOnly = {2} ",
            MyTypea.FullName,
            Myfieldinfoa.GetValue(Myfielda),
            Myfieldinfoa.IsInitOnly);
  
        //For the second field get and display the name, field, and
 IsInitOnly state.
        Console.Write("\n{0} - {1}, IsInitOnly = {2} ",
            MyTypeb.FullName,
            Myfieldinfob.GetValue(Myfieldb),
            Myfieldinfob.IsInitOnly);
  
        return 0;
    }
}
using namespace System;
using namespace System::Reflection;

//Make two fields, one public and one read-only.
public ref class Myfielda
{
public:
   String^ field;
   Myfielda()
      : field( "A - public field" )
   {}


   property String^ Field 
   {
      String^ get()
      {
         return field;
      }

      void set( String^ value )
      {
         if ( field != value )
         {
            field = value;
         }
      }

   }

};

public ref class Myfieldb
{
private:
   String^ const field;

public:
   Myfieldb()
      : field( "B - readonly field" )
   {}


   property String^ Field 
   {
      String^ get()
      {
         return field;
      }

   }

};

int main()
{
   Console::WriteLine( "\nReflection.FieldInfo" );
   Myfielda^ myfielda = gcnew Myfielda;
   Myfieldb^ myfieldb = gcnew Myfieldb;
   
   //Get the Type and FieldInfo.
   Type^ MyTypea = Type::GetType( "Myfielda" );
   FieldInfo^ Myfieldinfoa = MyTypea->GetField( "field", static_cast<BindingFlags>(BindingFlags::Public
 | BindingFlags::Instance) );
   Type^ MyTypeb = Type::GetType( "Myfieldb" );
   FieldInfo^ Myfieldinfob = MyTypeb->GetField( "field", static_cast<BindingFlags>(BindingFlags::NonPublic
 | BindingFlags::Instance) );
   
   //Modify the fields.
   //Note that Myfieldb is not modified, as it is
   //read-only (IsInitOnly is True).
   myfielda->field = "A- modified";
   
   //Myfieldb.field = "B- modified";
   //For the first field, get and display the name, field, and IsInitOnly
 state.
   Console::Write( "\n{0} - {1}, IsInitOnly = {2} ", MyTypea->FullName,
 Myfieldinfoa->GetValue( myfielda ), Myfieldinfoa->IsInitOnly );
   
   //For the second field get and display the name, field, and IsInitOnly
 state.
   Console::Write( "\n{0} - {1}, IsInitOnly = {2} ", MyTypeb->FullName,
 Myfieldinfob->GetValue( myfieldb ), Myfieldinfob->IsInitOnly );
   return 0;
}

import System.*;
import System.Reflection.*;

//Make two fields, one public and one read-only.
public class MyFielda
{
    public String field = "A - public
 field";

    /** @property 
     */
    public String get_Field()
    {
        return field;
    } //get_Field

    /** @property 
     */
    public void set_Field(String value)
    {
        if (!(field.Equals(value))) {
            field = value;
        }
    } //set_Field
} //MyFielda

public class MyFieldb
{
    private final String field = "B - readonly field";

    /** @property 
     */
    public String get_Field()
    {
        return field;
    } //get_Field
} //MyFieldb

public class MyFieldInfo
{
    public static void main(String[]
 args)
    {
        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.Public | BindingFlags.Instance);
        Type myTypeb = Type.GetType("MyFieldb");
        FieldInfo myFieldInfob = myTypeb.GetField("field", 
            BindingFlags.NonPublic | BindingFlags.Instance);

        //Modify the fields.
        //Note that myfieldb is not modified, as it is
        //read-only (IsInitOnly is True).
        myFielda.field = "A- modified";

        //myfieldb.field = "B- modified"; 
        //For the first field, get and display the name, field, and
 
        // IsInitOnly state.
        Console.Write("\n{0} - {1}, IsInitOnly = {2} ", 
            myTypea.get_FullName(), myFieldInfoa.GetValue(myFielda), 
            System.Convert.ToString(myFieldInfoa.get_IsInitOnly()));

        //For the second field get and display the name, field, and
 
        //IsInitOnly state.
        Console.Write("\n{0} - {1}, IsInitOnly = {2} ", 
            myTypeb.get_FullName(), myFieldInfob.GetValue(myFieldb), 
            System.Convert.ToString(myFieldInfob.get_IsInitOnly()));
    } //main
} //MyFieldInfo
//Make two fields, one public and one read-only.
public class Myfielda
{
   public var field : String = "A public
 field";
   public function get Field()
 : String {
       return field;
   }
   public function set Field(
 value : String ) {
       if (field!=value) field=value;
   }
}

public class Myfieldb
{
   const field : String = "B readonly field";
   public function get Field()
 : String {
       return field;
   }
}

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.Public);
      var MyTypeb : Type = Type.GetType("Myfieldb");
      var Myfieldinfob : FieldInfo = MyTypeb.GetField("field",
 BindingFlags.Instance|BindingFlags.Public);
 
      //Modify the fields.
      //Note that Myfieldb is not modified, as it is
      //read-only (IsInitOnly is True).
      myfielda.field = "A- modified";
      //Myfieldb.field = "B- modified";
 
      //For the first field, get and display the name, field, and IsInitOnly.
      Console.Write("\n{0} - {1}, IsInitOnly = {2} ",
         MyTypea.FullName,
         Myfieldinfoa.GetValue(myfielda),
         Myfieldinfoa.IsInitOnly);
 
      //For the second field get and display the name, field, and IsInitOnly.
      Console.Write("\n{0} - {1}, IsLiteral = {2} ",
         MyTypeb.FullName,
         Myfieldinfob.GetValue(myfieldb),
         Myfieldinfob.IsLiteral);
   }
}
Myfieldinfo.Main();

このコードによって、次の出力生成されます。

Reflection.FieldInfo

Myfielda - A- modified, IsInitOnly = False

Myfieldb - B readonly field, IsInitOnly = True

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
FieldInfo クラス
FieldInfo メンバ
System.Reflection 名前空間
FieldAttributes 列挙
GetField
Type



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

_FieldInfo.IsInitOnly プロパティのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



_FieldInfo.IsInitOnly プロパティのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS