>>115
ダイナミック型は、動的型付け言語とのやり取りのために実装されたようなものだから仕方ない
C#で完結出来るならダイナミック型など使わない、だがスキーマレスなJSONを吐き出す阿呆なウェブサービスと通信するとなれば、話は別だ
微妙に異なる形のそれぞれにクラスを用意するのでは効率が悪い、だから一度ダイナミック型で受けて用意したデータ型に展開する
この場合、元々通信先は型安全でないのでダイナミック型で受けても弊害はない
あくまでも一時保管であり、型安全でないままC#の世界に解き放つ事はしてはならない


動的型付け言語におけるダックタイピングはinterfaceの代替にはならない、実行するまでそれが使えるかわからないではお話にならない
静的型付け言語におけるダックタイピングはリスクが大きい、メソッドシグネチャが同じでも意図する事が異なるものがあったら事故る
Aというinterfaceが実装されているという事はそのクラスがAとして扱われることを考慮して実装されていることを保証する
それは即ち再利用時の安全を保証するものでこれはダックタイピングでは実現出来ない

つまりinterfaceってのは>>115みたいな馬鹿を縛る枷なんだよ、馬鹿が中途半端な実装をしない様に全部実装しろと明示してるの
そういう意味ではinterfaceはとても便利なんだ