可以在不使用Reflection的情況下從dotnet中的代碼獲取屬性名稱?不帶System.Reflection的屬性名稱
int PropWithNiceName
{
get {Console.Writeline(???)}
}
可以在不使用Reflection的情況下從dotnet中的代碼獲取屬性名稱?不帶System.Reflection的屬性名稱
int PropWithNiceName
{
get {Console.Writeline(???)}
}
是;你可以使用新的[CallerMemberName]
屬性:
static string MemberName([CallerMemberName] string name = null) {
return name;
}
int MyProperty {
set {
Console.WriteLine(MemberName());
}
}
只能在.NET 4.5和C#5.0中工作 – Euphoric
有趣的是,這樣做會導致代碼:Console.WriteLine(「MyProperty」);實際上在編譯後生成... –
你想要哪個屬性? –
是的,絕對:'Console.Writeline(「PropWithNiceName」)'將工作:) – dasblinkenlight
如上所述 - 你將不可避免地知道get方法中的屬性名稱,那麼爲什麼你必須有一種方法來去取它 - 只是硬編碼它。 – LukeHennerley