いつでもオブジェクト型のパラメータを作成できます。これはコンパイラが実行していることです。パラメータを動的に入力すると、そのメソッド内でのみ、パラメータのすべての使用に動的呼び出しを使用することを意味しますが、外部では、オブジェクト型の署名にすぎません。dynamicObjectのより強力な使用法は、呼び出すメソッドのオーバーロードを設定することです。したがって、例を同じに保ち、オーバーロードが2つしかない場合は、ランタイムタイプに基づいて2つのメソッドのいずれかを呼び出すことになります。より多くのタイプのためにさらに追加します。
public void Main() {
dynamic dynamicObject = 33;
if(true) { // Arbitrary logic
dynamicObject = null;
}
Method(dynamicObject);
}
public void Method(int param) {
//don't have to check check null
//only called if dynamicObject is an int
}
public void Method(object param) {
// will be called if dynamicObject is not an int or null
}