C# 不带System.Reflection的属性名

C# 不带System.Reflection的属性名,c#,.net,reflection,C#,.net,Reflection,是否可以从dotnet中的代码中获取属性名而不使用反射 int PropWithNiceName { get {Console.Writeline( ??? )} } 对,;您可以使用新的[CallerMemberName]属性: static string MemberName([CallerMemberName] string name = null) { return name; } int MyProperty { set { Console.Writ

是否可以从dotnet中的代码中获取属性名而不使用反射

int PropWithNiceName
{
get {Console.Writeline( ??? )}
}

对,;您可以使用新的
[CallerMemberName]
属性:

static string MemberName([CallerMemberName] string name = null) {
    return name;
}

int MyProperty {
    set {
        Console.WriteLine(MemberName());
    }
}

您想要哪个属性?是的,绝对:
Console.Writeline(“PropWithNiceName”)
将起作用:)如上所述-在get方法中,您将不可避免地知道属性的名称,那么为什么您必须有一种方法来获取它-只需硬编码即可。我想获取PropWithNiceName@Jacek-
dasblinkenlight
然后回答您的问题。您知道属性本身的名称。不是吗?有趣的是,这样做会产生代码:Console.WriteLine(“MyProperty”);实际上是编译后生成的。。。