关于c#:如何输入字符串并从对象中获取相同的名称属性?

how to input a string and get the same name property from a object?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Get property value from string using reflection in C#

例如,classA具有属性a、b、c、d、e。我想构建一个方法StringToProperty以便StringToProperty("A")返回a。

我想这可以通过反思来实现,但我现在还不知道。有什么简单的例子吗?

我会结束的,请投票结束


是否在具有属性的类中编写方法?如果是这样,请执行以下操作:

1
2
3
4
5
6
7
8
9
10
11
public object StringToProperty(string prop)
{
    switch(prop)
    {
        case"A":
           return a;
        case"B":
           return b;

    }
}

或者,您可以使用反射,如果不是:

1
2
Type type = classA.GetType();
return type.GetProperty(propertyString).GetValue(classAInstance, null);


1
2
3
var type = classA.GetType();
PropertyInfo property = type.GetProperty("A");
var propertyValue = property.GetValue(anInstance, null);


如果你做一个非常简单的谷歌搜索,你可以找到很多关于这方面的文字!

这是我发现的第一篇文章,正是关于你所需要的。

你可以很容易地写:

1
2
3
4
5
6
7
8
public object StringToProperty(string propertyName)
{
   Type type = ClassA.GetType();
   PropertyInfo theProperty = type.GetProperty(propertyName);

   object propertyValue = theProperty.GetValue(yourClassAInstance, null);
   return propertyValue;
}