Описание тега nameof

В C# выражения `nameof` являются формой отражения. Они возвращают строковое представление аргумента, как его видит компилятор.
2 ответа

Как получить все имена интерфейсов из файла? (Машинопись)

Я хочу получить все имена интерфейсов из определенного файла. например: file1.ts private interface first{ ... } private interface second{ ... } private interface third{ ... } file2.ts const interfacesList = GetInterfacesFrom(filePath); //in this cas…
08 мар '17 в 13:48
6 ответов

Почему nameof возвращает только фамилию?

nameof(order.User.Age) возвращает только "Age" вместо "order.User.Age" Какова причина сделать это более ограниченным способом? Если мы хотим только фамилию, мы могли бы сделать что-то вроде public static GetLastName(this string x) { return string.Sp…
12 янв '15 в 08:50
4 ответа

Название выражения в.net Framework 4

Выражение "nameof" введено в Visual Studio 2015 и C# 6 nameof (C# и Visual Basic Reference) Как вы можете использовать его или написать аналогичный метод в более старых версиях, таких как.net Framework 4.
07 июл '15 в 07:06
1 ответ

Запретить использование nameof в качестве параметра метода

У меня есть эта функция C#: public void MyFunction(string propertyName) { .... } Функция сохраняет имя свойства в базе данных для дальнейшего использования. Я хочу, чтобы пользователи этого метода не использовали nameof(MyProperty) в качестве параме…
23 июн '16 в 06:57
1 ответ

Почему nameof не работает над синонимами?

Из этого вопроса я узнал, что nameof() Оператор, введенный в C# 6.0, не работает по синонимам. Так что вы можете написать nameof(System.Object) но нет nameof(object), Теперь есть 2 других аналогичных оператора, typeof() а также default()и они отличн…
09 окт '17 в 09:20
3 ответа

Объявление констант с помощью nameof() константы в качестве значения

сценарий У меня есть класс для объявления string константы, используемые вокруг программы: public static class StringConstants { public const string ConstantA = "ConstantA"; public const string ConstantB = "ConstantB"; // ... } По сути, не имеет зна…
30 ноя '16 в 12:43
2 ответа

Существует ли Swift-эквивалент функции nameof() в C# для получения переменной или имени члена?

Хорошо, здесь есть вопрос о S/O со следующим заголовком: Swift: получить фактическое имя переменной в виде строки По его названию, кажется, это именно то, что я хочу. Однако, глядя на принятый ответ (и другие непринятые), они имеют в виду манипулиро…
19 дек '17 в 16:34
1 ответ

Используйте nameof для члена универсального класса без указания аргументов типа

class Foo<T> { public T Bar() { /* ... */ } } Я хотел бы передать имя Бар Type.GetMethod(string), Я могу сделать это как someType.GetMethod(nameof(Foo<int>.Bar)), но это int здесь совершенно произвольно; Есть ли способ, которым я могу оп…
19 ноя '15 в 21:58
1 ответ

Имеет ли Qt moc/C++11 эквивалент оператора C# nameof()?

Имеет ли Qt moc/C++11 эквивалент C# nameof() оператор? В Qt есть система moc, которая является / делает какое-то отражение, но я не могу понять, как получить имя переменной, как в C# nameof(), Это возможно?
25 июл '16 в 00:24
3 ответа

Можете ли вы использовать nameof когда скрыто в элементе видимости?

Рассмотрим следующий устаревший код: public class Foo { public void Blah(string frob) { if (frob == null) throw new ArgumentException("frob"); } public string nameof() { //boring code } } Теперь представьте, что часть этого кода подвергается рефакто…
01 фев '17 в 18:44
1 ответ

Почему это выражение работает? (C# 6.0)

nameof(ServiceResult<object>.Result), где ServiceResult<object> мой пользовательский тип и Result это поле этого типа. ServiceResult<object> это просто объявление типа, у него нет оператора new и (), но на официальной странице MS н…
23 мар '18 в 07:50
0 ответов

C# возвращает значение nameof() как переменную

Я хотел использовать nameof(), чтобы получить имя переменной, чтобы позже использовать его в чем-то вроде метода Undo/Redo. В моем конкретном случае у меня есть 2 разных класса, которые я хочу использовать функцию Undo/Redo. Моей первой мыслью было …
30 авг '18 в 15:50
1 ответ

Почему компилятор не выдает никаких ошибок или предупреждений при использовании этого хака?

В моем другом вопросе я нашел способ заставить этот синтаксис работать в редакторе MonoDevelop: // hack to make MonoDevelop recognize nameof syntax from C#6.0 using nameof = System.Func<string>; Компиляторы C# (Mono и VS) не выдают никаких пре…
21 июл '18 в 15:33
1 ответ

Использование nameof нестатического поля в инициализаторе статического поля

У меня класс со статикой List<T> и некоторые нестатические поля. Теперь я хотел бы инициализировать этот список некоторыми объектами, такими как: class C { private Bar bar; private static List<Foo> list = new List<Foo>() { new Foo(…
14 янв '16 в 13:59
1 ответ

Xamarin.Forms - разница между Button.TextProperty.PropertyName и nameof(myButton.Text)

Помимо синтаксиса, есть ли разница между: Button.TextProperty.PropertyName //(Xamarin.Forms.BindableProperty.PropertyName) а также nameof(myButton.Text) Один предпочтительнее другого по каким-либо причинам, кроме личных предпочтений?
17 ноя '17 в 16:00
3 ответа

Использование nameof для получения имени текущего метода

Просматривал, искал и надеялся, но не могу найти прямой ответ. Есть ли так или иначе в C# 6.0, чтобы получить текущее имя метода, используя nameof без указания имени метода? Я добавляю результаты моего теста в словарь, например так: Results.Add(name…
29 июн '16 в 11:52
2 ответа

Имя в атрибуте

Принимая во внимание Myatt атрибут и MyObj класс, как-то странно, что ObjName свойство известно в области Myatt приписывать. Не так ли? [AttributeUsage(AttributeTargets.Property)] public class MyAtt : Attribute { public MyAtt(string name) { this.Nam…
08 май '17 в 14:49
1 ответ

Можно ли подразумевать имя параметров массива params с помощью оператора name of?

Я подумал, что мог бы использовать новый оператор nameof C# 6 для создания словаря ключей / значений неявно из массива params. В качестве примера рассмотрим следующий вызов метода: string myName = "John", myAge = "33", myAddress = "Melbourne"; Test(…
03 ноя '16 в 13:53
2 ответа

Может ли C# nameof operator ссылаться на свойство экземпляра без экземпляра?

Я регулярно хочу получить имя свойства экземпляра типа, когда у меня нет экземпляра. В настоящее время для этого я использую следующую внутреннюю функцию, которая интерпретирует Expression[Func[T, object]] Параметр и возвращает имя свойства: var str…
08 июл '16 в 02:02
1 ответ

Почему nameof(объект) не допускается?

В C# 6.0 вы можете написать это: var instance = default(object); var type = typeof(object); Они имеют одинаковый результат: var instance = default(System.Object); var type = typeof(System.Object); Но вы не можете написать это: var name = nameof(obje…
04 ноя '16 в 11:49