C#动态创建类,并创建一个boor和 double公有属性的对象
时间: 2024-10-12 07:11:33 浏览: 30
在C#中,动态创建类并为其添加属性通常使用反射(Reflection API)和`dynamic`关键字。首先,你需要了解如何动态地创建一个类,然后为其添加公共属性。下面是一个简单的示例:
```csharp
using System;
using System.Reflection;
public class Program
{
public static void Main()
{
// 动态创建一个名为"DynamicClass"的类
Type dynamicType = typeof(Program).Assembly.GetType("DynamicClass");
// 创建动态类型的实例
dynamic obj = Activator.CreateInstance(dynamicType);
// 动态添加属性
PropertyInfo intProp = dynamicType.GetProperty("intProperty");
PropertyInfo doubleProp = dynamicType.GetProperty("doubleProperty");
// 设置属性值
intProp.SetValue(obj, 42);
doubleProp.SetValue(obj, 3.14);
// 访问属性值
Console.WriteLine($"Int property value: {intProp.GetValue(obj)}");
Console.WriteLine($"Double property value: {doubleProp.GetValue(obj)}");
// 使用try-catch处理可能的异常,因为不是所有类型都有默认构造函数和属性
try
{
// 创建另一个动态类型实例
dynamic anotherObj = Activator.CreateInstance(typeof(DynamicClass));
Console.WriteLine($"Another object's properties:");
Console.WriteLine($"Int property value: {intProp.GetValue(anotherObj)}");
Console.WriteLine($"Double property value: {doubleProp.GetValue(anotherObj)}");
}
catch (Exception ex)
{
Console.WriteLine($"Error creating another object: {ex.Message}");
}
阅读全文