using System.Reflection;
return typeof(Student).GetProperty("Grade").Name;
Но, как вы можете видеть, вы не так далеко впереди, используя отражение (таким образом), потому что строка "Grade" все еще жестко закодирована, что означает, что в этом сценарии она более эффективна, чем return "Grade"
.
Одна вещь, которую мне нравится делать, - это создавать и добавлять пользовательский атрибут к члену следующим образом. Следующее не позволяет использовать жестко закодированную строку «Grade».
public class Student {
// TAG MEMBER WITH CUSTOM ATTRIBUTE
[GradeAttribute()]
public int Grade
{
get;
set;
}
public string TheNameOfTheGradeProperty
{
get
{
/* Use Reflection.
Loop over properties of this class and return the
name of the one that is tagged with the
custom attribute of type GradeAttribute.
*/
}
}
// More properties..
}
Создание пользовательских атрибутов можно найти здесь .