4

以下のコードがあります。型がわからないオブジェクトを取得します。その型を確認する条件を 3 つ確認してから、適切なキャストを行う必要があります。

実行時にオブジェクト型を取得し、if 条件をチェックせずにキャストする方法はありますか?

私が持っているオブジェクトはrequirementTemplateであり、その型を取得してキャストするために多くの型でそれをチェックする必要があります。

if (requirementTemplate.GetType() == typeof(SRS_Requirement))
{
    ((SRS_Requirement)((TreeNodeInfo)ParentTreeNode.Tag).Handle).AssociatedFeature = ((SRS_Requirement)requirementTemplate).AssociatedFeature;
}
else if (requirementTemplate.GetType() == typeof(CRF_Requirement))
{
    ((CRF_Requirement)((TreeNodeInfo)ParentTreeNode.Tag).Handle).AssociatedFeature = customAttr.saveAttributesCustomList(AttributesCustomListCloned);
}
else if (requirementTemplate.GetType() == typeof(SAT_TestCase))
{
    ((SAT_TestCase)((TreeNodeInfo)ParentTreeNode.Tag).Handle).AssociatedFeature = ((SAT_TestCase)requirementTemplate).AssociatedFeature;
}
4

2 に答える 2

3

asキーワードを使用する必要があると思います。チェックとして(C# リファレンス)

于 2011-08-17T13:02:26.860 に答える