嗨,还有另一个快速的问题。
我想创建一个变量对象,以便根据某些内容的值,根据需要进行转换。 e.g。
var rule;
switch (seqRuleObj.RuleType) {
case SeqRuleObj.type.Pre :
rule = new preConditionRuleType();
rule = (preConditionRuleType)seqRuleObj.Rule;
break;
case SeqRuleObj.type.Post :
rule = new postConditionRuleType();
rule = (postConditionRuleType)seqRuleObj.Rule;
break;
case SeqRuleObj.type.Exit :
rule = new exitConditionRuleType();
rule = (exitConditionRuleType)seqRuleObj.Rule;
break;
default :
break;
}
String result;
foreach (sequencingRuleTypeRuleConditionsRuleCondition cond in rule.ruleConditions.ruleCondition) {
....../ blah
}
所以基本上这不起作用。 c#将不允许我在每种情况下创建一个新对象,因为名称已定义。
我可以将foreach循环粘贴到每个案例中,但对我来说这是一种浪费,因为除了名称之外,所有对象都完全相同。
答案 0 :(得分:2)
这些类型是从公共类继承还是实现通用接口?如果是,则代替使用var rule
,将rule
声明为基本类型/接口。
如果他们没有公共类/接口并且你可以控制这些类型,那么为它们创建一个基类/接口。