У меня есть эта проблема с некоторым кодом, который генерирует код SQL для последующей передачи через базу данных. Но пока я работал над кодом, я подумал: «Должен быть лучший способ сделать это»
Вот код, который я получил до сих пор:
if (invoice.ID is string) SQL.AppendFormat($"{nameof(invoice.ID)} = '{invoice.ID}'").Replace(",", ".").Append(", ");
else SQL.AppendFormat($"{nameof(invoice.ID)} = {invoice.ID}").Replace(",", ".").Append(", ");
if (invoice.InvoiceID is string) SQL.AppendFormat($"{nameof(invoice.InvoiceID)} = {invoice.InvoiceID}, ").Replace(",", ".").Append(", ");
else SQL.AppendFormat($"{nameof(invoice.InvoiceID)} = {invoice.InvoiceID}").Replace(",", ".").Append(", ");
if (invoice.IssuedDate is string) SQL.AppendFormat($"{nameof(invoice.IssuedDate)} = {invoice.IssuedDate}, ").Replace(",", ".").Append(", ");
else SQL.AppendFormat($"{nameof(invoice.IssuedDate)} = {invoice.IssuedDate}").Replace(",", ".").Append(", ");
Как вы можете видеть, я должен ссылаться на переменную каждый раз, и я хочу, чтобы этот код был как можно более динамичным c, так как я еще не знаю, сколько столбцов будет, когда я закончу.
Так что мой wi sh должен иметь возможность копировать и вставлять некоторый код и изменять только одну или, может быть, две переменные (предпочтительно одну), например:
if ({0} is string) SQL.AppendFormat($"{nameof({0})} = '{{0}}'").Replace(",", ".").Append(", ");
else SQL.AppendFormat($"{nameof({0})} = {{0}}").Replace(",", ".").Append(", ").Format(invoice.ID);
Я знаю приведенный выше пример невозможен, но я надеюсь, что вы видите, что я хочу.
Заранее большое спасибо, и любая помощь будет высоко оценена