C#在原有的类基础上返回动态添加字段显示
时间: 2023-07-15 19:11:33 浏览: 53
在 C# 中,可以使用 `ExpandoObject` 类来动态地添加字段和属性。以下是一个示例代码:
```csharp
dynamic obj = new System.Dynamic.ExpandoObject();
obj.Name = "John";
obj.Age = 30;
Console.WriteLine(obj.Name);
Console.WriteLine(obj.Age);
```
在上述代码中,我们创建了一个 `ExpandoObject` 对象,并使用动态语言运行时来添加了两个属性 `Name` 和 `Age`。然后我们可以像访问普通对象一样访问这些属性。
如果你想要在一个已有的类基础上添加字段,可以使用继承来实现。以下是一个示例代码:
```csharp
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class DynamicPerson : Person
{
public dynamic DynamicFields { get; set; }
}
// 使用示例
DynamicPerson john = new DynamicPerson();
john.Name = "John";
john.Age = 30;
john.DynamicFields = new System.Dynamic.ExpandoObject();
john.DynamicFields.Address = "123 Main St";
john.DynamicFields.Phone = "555-1234";
Console.WriteLine(john.Name);
Console.WriteLine(john.Age);
Console.WriteLine(john.DynamicFields.Address);
Console.WriteLine(john.DynamicFields.Phone);
```
在上述代码中,我们创建了一个 `Person` 类作为基类,并在其基础上创建了一个 `DynamicPerson` 类。`DynamicPerson` 类添加了一个名为 `DynamicFields` 的动态属性,用于存储动态添加的字段。在使用示例中,我们创建了一个 `DynamicPerson` 实例,并分别设置了 `Name`、`Age` 和 `DynamicFields` 属性。然后我们可以像访问普通对象一样访问这些属性,包括动态添加的字段。