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

ここであなたに不利に働いていることがいくつかあります。まず、変数m_TestAなどはプロパティではなく、フィールドです。したがって、を使用する代わりに、次のGetProperty()ことを試してくださいGetField()

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

2つ目は、デフォルトで非公開の可視性があるため、上記で行ったように、非公開フィールドとインスタンスフィールドを探すようにリフレクターに依頼することでリフレクターを支援する必要があります。

于 2013-01-13T20:30:48.423 に答える