Я часто пишу код на C #, который должен использовать магические строки для выражения имен свойств. Всем известны проблемы с волшебными струнами. Их очень трудно реорганизовать, у них нет проверки времени компиляции, и часто они приводят к трудным для диагностики проблемам. Тем не менее C # /. NET использует их повсеместно для представления имен свойств / классов / методов.
Эта проблема сохраняется годами и годами, и в настоящее время единственное жизнеспособное решение - использовать дерево выражений, которое затем анализируется во время выполнения для имени свойства. Это дает вам удовлетворительную проверку во время компиляции, но усложняет код (требующий параметров типа Expression), и - это затраты времени выполнения.
Кто-нибудь знает, была ли когда-либо рассмотрена возможность C # / .NET для добавления отражения во время компиляции, чтобы преодолеть эту распространенную проблему?
Кажется, что это было бы простое добавление, это было бы неразрывным изменением, и оно очень помогло бы многим разработчикам. Оператор typeof () уже выполняет форму отражения во время компиляции, поэтому кажется, что оператор nameof () (или что-то подобное) будет очень полезным.
Кроме того, кто-нибудь знает о возможных проблемах с такой функцией?
Спасибо за помощь.