18.4 使用动态对象进行编程