📜  c# 创建动态对象 - C# (1)

📅  最后修改于: 2023-12-03 14:39:45.376000             🧑  作者: Mango

C# 创建动态对象

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);

以上代码将创建一个具有 NameAge 属性的动态对象。属性值可以像访问普通对象一样访问。

动态方法

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 提供了许多有用的功能,使我们可以更加灵活地处理对象。 添加或删除属性和方法,以及动态调用方法,为您的应用程序打开了新的可能性。