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