動態綁定( dynamic binding)將綁定( binding)(即解析類型、成員和操作的過程從編譯時延遲到運行時。動態綁定適用於那些開發者知道某個特定的函數、成員或操作的存在,而編譯器不知道的情況。這種情況通常出現在操作動態語言(例如 Ironpython)和COM時。在這些情況下,如果不使用動態綁定就只能使用反射機制了動態類型是通過上下文關鍵字 dynamic聲明的:
dynamic d=GetSomeObject();
d.quack();
動態綁定類型會告訴編譯器“不要緊張”,我們認爲d的運行時類型具有一個 Quack方法,但是我們無法靜態的證明這一點。由於d是動態的,所以編譯器推遲到運行時纔將Quack綁定給d。爲了真正理解這個概念,我們需要先區分靜態綁定和動態綁定。