using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Dynamic; namespace ConsoleApplication4 { class Program { static void Main(string[] args) { //实例化一个动态对象 dynamic dynamicObj = new ExpandoObject(); //动态添加字段 dynamicObj.Name = "张飞"; //动态添加方法 dynamicObj.DelegateObj = new Action(() => dynamicObj.Name = "关羽"); //执行方法 dynamicObj.DelegateObj(); //输出:关羽 Console.WriteLine(dynamicObj.Name); //删除字段(ExpandoObject对象实现了IDictionary<string, object>接口, //可看成是一个字典对象,所有动态添加的成员都是这个字典对象中的元素,这意味我们不仅可以添加新成员,还可以随时移除不再需要的成员) (dynamicObj as IDictionary<string, object>).Remove("Name"); //再次访问此字段会抛出异常 Console.WriteLine(dynamicObj.Name); Console.ReadKey(); } } }
时间: 2024-10-11 19:49:03