Да, это имеет смысл Если вы «гарантируете», что всегда будете возвращать объект с некоторыми характеристиками , например, с Id
(игнорируя, что, возможно, было бы лучше использовать интерфейс)
public dynamic MyMethod()
{
var temp = new ExpandoObject();
temp.Id = 5;
return temp;
}
Console.WriteLine(MyMethod().Id);
Таким образом, если вы гарантируете, что все ваши объекты могут Turn Left-Right
, но вы не гарантируете, являются ли они самолетами, автомобилями, мотоциклами, лодками. (так что хорошо, если вы делаете Утка, набрав When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.
)
Обратите внимание, что если вам необходимо отразить ваши объекты, это может стать уродливым: Как мне отразить элементы динамического объекта?