フィールドにある CustomAttributes などの目的で FieldInfo にアクセスしたいのですが、文字列を使用してそのフィールドにアクセスしたり、クラス内のすべてのフィールドを実行したりする必要はありません。
私が単に持っている場合、
class MyClass
{
#pragma warning disable 0414, 0612, 0618, 0649
private int myInt;
#pragma warning restore 0414, 0612, 0618, 0649
public MyClass()
{
BindingFlags flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
Console.WriteLine( GetType().GetField("myInt", flags) );
foreach( FieldInfo fi in GetType().GetFields(flags) )
{
Console.WriteLine( string.Format("{0} {1} {2}", fi.Name, myInt, fi.GetValue(this) ) );
}
}
}
「GetField」関数を介して直接「myInt」の FieldInfo にアクセスできることを知っています。その名前の文字列がある場合、または「GetFields」を循環する場合は、「myInt」という文字列を持つことに再び依存します。右のフィールドを確認してください。
ref myInt
、またはout myInt
、またはアクセスできるまだ知らないキーワードのような利用可能な魔法はありますか、またはそれを取得するために文字列名が必要に制限されていますか?