C# 获取未知类中所有的值
时间: 2024-09-26 08:16:13 浏览: 38
在C#中,获取未知类中的所有字段或属性(包括公共、受保护、内部以及私有的)通常涉及到反射机制。你可以使用`System.Reflection`命名空间下的`Type`和`PropertyInfo`等类来动态地访问和操作类的信息。
下面是一个简单的示例,展示了如何使用反射来获取一个未知类型的对象的所有公共属性:
```csharp
using System;
using System.Reflection;
class Program
{
static void Main(string[] args)
{
// 假设我们有一个名为Person的未知类型
Type personType = typeof(Person);
// 获取该类型的所有公共属性
PropertyInfo[] properties = personType.GetPublicProperties();
foreach (PropertyInfo property in properties)
{
// 输出属性名称和默认值
Console.WriteLine($"属性名: {property.Name}, 默认值: {property.GetValue(null)}");
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
private double Salary { get; set; } // 私有属性
}
}
```
在这个例子中,你需要确保`typeof(Person)`引用的类存在,并且它确实包含可以被反射读取的属性。注意,由于安全性和性能考虑,反射并不建议用于频繁或重要的操作,尤其是在生产环境中。
阅读全文