私は持っていVector<ItemRenderer^>
ます。ItemRenderer
抽象型です。すべてをフィルタリングしてConcreteRenderer
、何らかのアクションを実行したいと考えています。
私が試したこと:
for each (auto renderer in m_parts)
if (renderer->GetType() == ConcreteRenderer::typeid)
{
auto item = dynamic_cast<ConcreteRenderer^>(renderer);
item->SetState(1);
}
しかしrenderer
、タイプがVectorProxy<ItemRenderer^>
あり、何も機能しません。修正方法は?
アップデート:
そこで、次のコードを使用しました。
for each (auto renderer in m_parts)
{
auto item = dynamic_cast<ConcreteRenderer^>((ItemRenderer^)renderer);
if (item != nullptr)
item->SetState(1);
}
今、すべてがうまくいきます。それは一般的な解決策ですか、それとも他に何かありますか?