我想访问 FieldInfo、字段上的 CustomAttributes 以及其他目的,但我不希望使用字符串来访问该字段,也不必遍历类中的所有字段。
如果我只是有,
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”来确保你' ve 正确的领域。
是否有任何可用的魔法,例如ref myInt
, 或out myInt
,或一些我还不知道的关键字可以让我访问,或者我是否仅限于需要字符串名称来获取它?