Использую щеголеватый в последнее время, так что, конечно, есть много кода, как:C# строка интерполяция - возможно ли отразить внутреннюю промежуточную структуру?
var id = 123;
var s = "hola";
conn.Execute("update foo set bar = @a where id = @b", new { a = s, b = id })
Это был также мой первый раз с C# 6.0, так что я заметил сходство между выше и интерполяции строк:
$"update foo set bar = {s} where id = {id}"
Однако. это просто работает на простых строках, без каких-либо знаний о параметрах, побегах и т. д. Было бы возможно каким-то образом задуматься о промежуточной структуре, сгенерированной компилятором, а затем использовать ее для правильной настройки параметров? Таким образом, вместо результирующей строки можно получить что-то, что содержит строку с отверстиями и массив объектов. Чувствует, что с такими данными можно было бы многое сделать.
* Будет ли это быть как-то можно подумать о промежуточной структуре, генерируемого компилятором, а затем использовать его, чтобы правильно настроить параметры * Я не понять, что вы имеете в виду здесь ... – xanatos
И когда вы хотели бы сделать этот анализ? Во время компиляции (сразу после компиляции)? Во время выполнения? – xanatos
Во время выполнения. В двух словах, вместо того, чтобы получать готовые строки из такой интерполяции, я хотел бы получить этот компилятор структуры, чтобы преобразовать его в (если я прав) string.Format calls: строка с отверстиями и массив объектов. Мне кажется, это может быть очень полезно – Bartosz