C#在原有的类基础上动态添加字段显示
时间: 2023-07-15 16:11:34 浏览: 414
C#中的继承符合下列规则-C#.NET讲解
在C#中,类是静态的,意味着在编译时定义的。因此,无法直接在运行时添加新字段。但是,你可以使用反射来实现动态添加字段的效果。
以下是一个示例代码,可以动态添加字段并在控制台中显示:
```csharp
using System;
using System.Reflection;
namespace DynamicFieldExample
{
class Program
{
static void Main(string[] args)
{
// 创建一个对象
MyClass obj = new MyClass();
// 获取类型的字段信息
FieldInfo fieldInfo = typeof(MyClass).GetField("newField", BindingFlags.Instance | BindingFlags.NonPublic);
// 动态添加字段并设置值
fieldInfo.SetValue(obj, "Hello, World!");
// 显示字段值
Console.WriteLine(obj.newField);
}
}
class MyClass
{
public int field1;
public string field2;
// 定义一个动态添加的字段
private string _newField;
// 添加一个属性来访问新字段
public string newField
{
get { return _newField; }
set { _newField = value; }
}
}
}
```
在上面的代码中,我们使用反射获取了`MyClass`类中的私有字段`_newField`,并使用`SetValue`方法给它赋值。最后,我们可以通过`newField`属性来访问新添加的字段并将其显示在控制台中。
阅读全文