0

我有这样的课程:(我简化了课程以便解释)

public class CRecherche
{

    bool m_TestA;
    bool m_TestB;
    bool m_TestC;

    public CRecherche()
    {

    }

    public myFonction()
    { 
        bool bValue = (bool)typeof(CRecherche).GetProperty("m_Test"+"A").GetValue(this,null);
    }
}

我想使用该名称阅读 m_TestA、m_TestB 和 m_TestC。

我努力了 :

(bool)typeof(CRecherche).GetProperty("m_Test"+"A").GetValue(this,null);

但是没有成功。

有人有想法吗?

非常感谢,

4

1 回答 1

1

这里发生了一些对你不利的事情。首先,您的 variablesm_TestA等不是properties,它们是字段。因此GetProperty(),您应该尝试使用,而不是使用GetField()

return (bool)typeof(CRecherche)
    .GetField("m_TestA", BindingFlags.NonPublic | BindingFlags.Instance)
    .GetValue(this);

第二个是默认情况下它们具有私有可见性,因此您必须通过要求它查找非公共和实例字段来帮助反射器,就像我在上面所做的那样。

于 2013-01-13T20:30:48.423 回答