C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で現在の型の特定のフィールドを取得する方法(GetFieldメソッドの使い方)

C#で現在の型(クラス)が持つ特定のフィールドを取得するには、System.Reflection名前空間のType.GetFieldメソッドを使用します。このメソッドにフィールド名を文字列で渡すと、該当するフィールドの情報がFieldInfoオブジェクトとして返されます。

特定のフィールドを取得するサンプルコード

以下は、Subjectクラスの「SubName」というフィールドをGetFieldメソッドで取得する例です。

using System;
using System.Reflection;

public class Demo {
   public static void Main() {
      Type type = typeof(Subject);
      try {
         FieldInfo fieldInfo = type.GetField("SubName");
         Console.WriteLine("FieldInfo = {0}", fieldInfo);
      }
      catch (ArgumentNullException e) {
         Console.Write("{0}", e.GetType(), e.Message);
      }
   }
}

public class Subject {
   public string SubName = "Science";
}

実行結果

FieldInfo = System.String SubName

コードのポイント

  • typeof(Subject) で対象クラスのTypeオブジェクトを取得します。
  • type.GetField("SubName") により、指定した名前のパブリックフィールドを検索し、FieldInfoとして返します。
  • 引数にnullを渡すとArgumentNullExceptionがスローされるため、try-catchブロックによる例外処理を組み込んでいます。

nullを渡した場合の動作例

次に、GetFieldメソッドの引数にnullを渡した場合の挙動を確認してみましょう。

using System;
using System.Reflection;

public class Demo {
   public static void Main() {
      Type type = typeof(Subject);
      try {
         FieldInfo fieldInfo = type.GetField(null);
         Console.WriteLine("FieldInfo = {0}", fieldInfo);
      }
      catch (ArgumentNullException e) {
         Console.Write("{0}", e.GetType(), e.Message);
      }
   }
}

public class Subject {
   public string SubName = "Science";
}

実行結果

System.ArgumentNullException

このように、GetFieldメソッドにnullを渡すとArgumentNullExceptionが発生します。実際の開発では、フィールド名が有効な値であることを事前に確認するか、例外処理を適切に実装しておくことが重要です。また、非パブリックなフィールドを取得したい場合は、BindingFlagsを指定したオーバーロードを利用することで対応できます。

  1. C#で現在のインスタンスの型を取得する方法(GetTypeメソッド)

    C#でオブジェクトの現在のインスタンスの型(実行時の型)を取得するには、GetType()メソッドを使用します。このメソッドはすべての型の基底クラスであるSystem.Objectに定義されており、呼び出し元インスタンスの正確な型をSystem.Typeオブジェクトとして返します。 GetType()メソッドの基本 GetType()はインスタンスに対して呼び出すことで、その実行時の型情報を取得できます。戻り値であるTypeオブジェクトをそのまま文字列連結して出力すると、「System.String」や「System.Int32」のような完全修飾型名が表示されます。 例1:string型のイン

  2. C#で列挙型(Enum)の型を取得する方法

    C#で列挙型(Enum)の型情報を取得するには、GetType()メソッドを使用します。この記事では、実際のコード例を通じて、列挙型の型名や基になる型(Underlying Type)の取得方法をわかりやすく解説します。 列挙型の準備 まず、複数の列挙型の値を格納した配列を用意します。ここでは、.NET標準ライブラリに含まれる ConsoleColor と DayOfWeek の2つの列挙型を使用します。 Enum[] values = { ConsoleColor.Blue, DayOfWeek.Sunday}; GetType()メソッドで型を取得する 列挙値の型を取得するには、各値