Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这在C#GetStringName(o.Property)或o.Property.GetPropertyStringName()中可能吗?_C#_Reflection - Fatal编程技术网

这在C#GetStringName(o.Property)或o.Property.GetPropertyStringName()中可能吗?

这在C#GetStringName(o.Property)或o.Property.GetPropertyStringName()中可能吗?,c#,reflection,C#,Reflection,可能重复: 我需要一些方法来获取属性的字符串名称,我不知道这在C#中是否可行,是吗?使用C#3和.NET 3.5中的表达式树,您可以执行以下操作: 也可以使用匿名类型和反射: GetStringName(new { o.Property }) 但两者都有点老套。(我举了一个关于后者的例子,当然是为了一个稍微不同的目的,但它展示了一般的想法。)如果您能告诉我们更多关于您为什么需要了解这一点的信息,我们可能会给您提供更好的建议。如果您希望将所有属性名称作为字符串数组来获取,您可以这样做: Typ

可能重复:


我需要一些方法来获取属性的字符串名称,我不知道这在C#中是否可行,是吗?

使用C#3和.NET 3.5中的表达式树,您可以执行以下操作:

也可以使用匿名类型和反射:

GetStringName(new { o.Property })

但两者都有点老套。(我举了一个关于后者的例子,当然是为了一个稍微不同的目的,但它展示了一般的想法。)如果您能告诉我们更多关于您为什么需要了解这一点的信息,我们可能会给您提供更好的建议。

如果您希望将所有属性名称作为字符串数组来获取,您可以这样做:

Type myClassType = myClass.GetType(); //get your class type
PropertyInfo[] myClassProps = myClassType.GetProperties();
然后,您可以循环通过它们

string namesAndValues;
foreach(PropertyInfo prop in myClassProps){
     namesAndValues += "Property Name: " + prop.Name + ", Value: " + prop.GetValue(myClass, null).ToString();
}

-1不是他所要求的
string namesAndValues;
foreach(PropertyInfo prop in myClassProps){
     namesAndValues += "Property Name: " + prop.Name + ", Value: " + prop.GetValue(myClass, null).ToString();
}