c # передать строку форматирования данных во время выполнения - PullRequest
0 голосов
/ 10 октября 2011

Я хотел бы иметь возможность передавать строку формата во время выполнения и применять ее к номинальному значению данных.

например, строка входящего формата может выглядеть как стандартные типы форматов c #:

{0: c}, {0: d}, #, ###, ###

Я хочу иметь возможность принимать строковое значение и применять формат во время выполнения. какой-то псевдокод

private string FormatAtRunTime(formatstring)
{
   string formattedOutput = "";
   decimal datavalue = 2.4600;

   datavalue.ToString(formatstring);   ??????

   return formattedOutput;
}

1 Ответ

2 голосов
/ 10 октября 2011

Я думаю, вы просто хотите:

string formattedOutput = string.Format(formatstring, datavalue);

Тот факт, что первый аргумент не является строковым литералом (как, вероятно, и есть большинство вызовов Format), не имеет значения.Обратите внимание, что вызов datavalue.ToString(formatstring) был бы приемлем, если бы formatstring был спецификатором формата single , например "c" или даже "0.000", но это не может быть формат составной Строка как ваш пример дает.Для этого вам нужно string.Format.

...