c# 将字符串类型的值转变为变量名代码
时间: 2023-08-06 12:03:48 浏览: 219
在 C# 中,不能直接将字符串类型的值转变为变量名。但是可以使用反射(reflection)来实现。具体来说,可以使用 System.Reflection 命名空间中的 Type 类和 PropertyInfo 类来获取对象的属性信息,从而获取属性名和属性值。示例代码如下:
```csharp
using System;
using System.Reflection;
class Program
{
static void Main(string[] args)
{
var obj = new MyClass();
string propertyName = "MyProperty";
PropertyInfo propertyInfo = obj.GetType().GetProperty(propertyName);
if (propertyInfo != null)
{
object propertyValue = propertyInfo.GetValue(obj);
Console.WriteLine(propertyValue);
}
}
}
class MyClass
{
public int MyProperty { get; set; } = 123;
}
```
在上面的示例代码中,我们定义了一个 MyClass 类,其中包含一个 MyProperty 属性。然后,我们定义了一个字符串变量 propertyName,用于存储属性名。接着,我们使用 obj.GetType() 方法获取 obj 对象的类型,然后使用 GetProperty(propertyName) 方法获取指定名称的属性信息。如果获取成功,我们就可以使用 GetValue(obj) 方法获取属性值,并将其输出到控制台。运行上面的代码,输出结果为 123。
阅读全文