GetSomeObject() の戻り値の型は、何らかの型のインスタンスになります。たとえば、次のようになります。
public Customer GetSomeObject() {
return new Customer("John", "Doe", 12345);
}
そして、コードは次のようになります。
dynamic customer = GetSomeObject();
string s = customer.FirstName;
// now the "s" variable would have "John" in it
はGetSomeObject()
何でも返すことができます。Customer オブジェクトまたは Product を返す場合があります。そして、それは問題ではありません!アイデアは、変数がdynamic
メソッドまたはプロパティを呼び出すときに変数が宣言されている場合、コンパイラはリフレクションを使用してメソッドまたはプロパティを呼び出しようとするコードを生成するということです。それらが存在する場合、呼び出しは成功します。そうしないと、実行時にエラーが発生します。
一般的なケースでは、この例は、コンパイラにコードを生成させることにより、Reflection の使用を単純化しています。
そうは言っても、Customer オブジェクトまたは Product オブジェクトが IDynamicObject 自体を実装している場合は、はるかに高度な処理を行うことができます。