Я начал использовать C# 4.0 и любя динамическое ключевое слово. Тем не менее, я не уверен, что я делаю, можно считать хорошей практикой. См. Код ниже:C# dyanmic type и conditionals
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("");
}
Есть ли лучший способ сделать это? Я нашел этот метод довольно простым и использовал его, но не уверен, что это то, что я должен придерживаться в долгосрочной перспективе.
EDIT: Если бы я должен был сделать то же самое с использованием .NET 3.5 или ниже или без динамического ключевого слова, что было бы хорошей реализацией?
Спасибо заранее! :)
Что не так с 'as'? –
Эндрю: хорошая точка! Я все еще изучаю C#, поэтому иногда забываю о некоторых очень важных понятиях. –