我已经开始使用 C# 4.0 并且喜欢动态关键字。但是,我不确定我在做什么可以被认为是好的做法。请看下面的代码:
static void Main()
{
NoobSauceObject noob = new NoobsauceObject();
dynamic theReturnType = noob.do(param);
if (theReturnType.GetType().ToString().Contains("TypeOne"))
theReturnType.ExecuteMethodOfTypeOne();
else if (theReturnType.GetType().ToString().Contains("TypeTwo"))
theReturnType.ExecuteMethodOfTypeTwo();
else
throw new ArgumentException("");
}
有没有更好的方法来做到这一点?我发现上述方法非常简单并且一直在使用它,但不确定从长远来看我是否应该坚持使用它。
编辑:如果我要使用 .NET 3.5 或更低版本或不使用 dynamic 关键字来做同样的事情,那么什么是好的实现?
提前致谢!!:)