直接在类上读取属性值(使用this)



我有这样一个类:(我简化了类以便解释)

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使用的名称。

I have try:

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

但是没有成功。

有人有主意吗?

谢谢,

这里有一些事情对您不利。首先,变量m_TestA等不是属性,它们是字段。因此,您应该尝试使用GetField():

而不是使用GetProperty()
return (bool)typeof(CRecherche)
    .GetField("m_TestA", BindingFlags.NonPublic | BindingFlags.Instance)
    .GetValue(this);
第二,默认情况下,它们具有私有可见性,因此您必须通过要求反射器查找非公共字段和实例字段来帮助反射器,就像我上面所做的那样。

相关内容

  • 没有找到相关文章

最新更新