Меня немного смущает оператор nameof(). Так, например, я не могу использовать частные поля класса в nameof() в другом классе, но я могу использовать общедоступные нестатические поля, используя нестатическое свойство, поэтому мне не нужно экземпляр объекта.
Последовательно ли это? Почему модификатор доступа к членам имеет значение для nameof()?
class A
{
private int X;
public int Y;
public A()
{
var x = nameof(A.X);//OK
var y = nameof(A.Y);//OK
}
}
class B
{
public B()
{
var x = nameof(A.X);//Compilation error
var y = nameof(A.Y);//OK
}
}
Меня немного смущает оператор nameof(). Так, например, я не могу использовать частные поля класса в nameof() в другом классе, но я могу использовать общедоступные нестатические поля, используя нестатическое свойство, поэтому мне не нужно экземпляр объекта.
Последовательно ли это? Почему модификатор доступа к членам имеет значение для nameof()?
class A { private int X; public int Y; public A() { var x = nameof(A.X);//OK var y = nameof(A.Y);//OK } } class B { public B() { var x = nameof(A.X);//Compilation error var y = nameof(A.Y);//OK } }
Я пытаюсь получить текст из перечисления, например
public enum MyEnum {
Bar,
Foo
}
В этом случае получите строку Bar или Foo, используя MyEnum.Bar/MyEnum.Foo.
Я понял, что и MyEnum.Bar.ToString(), и nameof(MyEnum.Bar) вернут нужную мне строку (...
Я регулярно хочу получить имя свойства экземпляра типа, когда у меня нет экземпляра. В настоящее время для этого я использую следующую собственную функцию, которая интерпретирует параметр Expression[Func ] и возвращает имя свойства:
Я ищу решение для своего проекта, в котором у меня есть Dictionary и вспомогательный метод, который пытается получить определенное значение из этого словаря.
Как вы можете видеть ниже, если у меня нет stringKey, я пытаюсь получить этот stringKey из...