📅  最后修改于: 2023-12-03 14:39:45.376000             🧑  作者: Mango
C# 提供了一个方便的方法来创建动态对象:Dynamic Object。使用 Dynamic Object,可以在运行时添加属性和方法,而无需在编译时执行。
创建动态对象需要使用 ExpandoObject
类。以下是创建一个简单动态对象的示例:
dynamic person = new System.Dynamic.ExpandoObject();
person.Name = "John";
person.Age = 30;
Console.WriteLine("Name: " + person.Name);
Console.WriteLine("Age: " + person.Age);
以上代码将创建一个具有 Name
和 Age
属性的动态对象。属性值可以像访问普通对象一样访问。
Dynamic Object 还支持动态方法,这意味着您可以在运行时添加方法。以下示例说明如何创建具有动态方法的动态对象:
dynamic person = new System.Dynamic.ExpandoObject();
person.Greet = new Action(() => Console.WriteLine("Hello, World!"));
person.Greet();
此示例将创建一个名为 Greet
的动态方法,并使用 Action
委托来定义方法的行为。在 person.Greet()
调用中,将打印消息“Hello,World!”。
动态方法仅限于不带参数的方法。 但是,您仍然可以实现带有参数的动态方法。 以下示例说明如何创建具有参数的动态方法:
dynamic person = new System.Dynamic.ExpandoObject();
person.Greet = new Action<string>(name => Console.WriteLine("Hello, " + name + "!"));
person.Greet("John");
在上面的示例中,Action<string>
委托用于指定动态方法的签名。 在调用 person.Greet()
时,您需要传递一个字符串参数。
使用 C# 的 Dynamic Object 提供了许多有用的功能,使我们可以更加灵活地处理对象。 添加或删除属性和方法,以及动态调用方法,为您的应用程序打开了新的可能性。