C#根据字符串设置属性值
时间: 2024-09-06 17:04:27 浏览: 47
在C#中,如果你想要根据字符串来动态地设置对象的属性值,你可以使用反射(Reflection)或者字典(Dictionary)来实现。这里提供一个使用反射实现的基本示例:
首先,你需要定义一个类,并为其设置属性:
```csharp
public class MyClass
{
public string MyProperty { get; set; }
}
```
然后,你可以使用反射来根据属性名字符串来设置属性值:
```csharp
public static void SetPropertyValue(object obj, string propName, object value)
{
var propInfo = obj.GetType().GetProperty(propName);
if (propInfo != null && propInfo.CanWrite)
{
propInfo.SetValue(obj, value);
}
else
{
// 属性不存在或不可写时的处理逻辑
}
}
```
使用时,你可以这样调用:
```csharp
MyClass myClass = new MyClass();
SetPropertyValue(myClass, "MyProperty", "SomeValue");
```
这样就根据字符串 "MyProperty" 设置了 `myClass` 对象的 `MyProperty` 属性值为 "SomeValue"。
阅读全文