Почему вы включаете String.Format в саму строку?
Если вы ищете обобщенное «позвольте мне оценить это произвольное выражение, которое я построил в строке», тогда простого ответа нет.
Если вместо этого вы смотрите, как передать параметры в строку из вызова функции, то вы все перепутали и слишком усердно работаете.
Попробуйте что-то вроде этого, основываясь на вашем оригинальном коде:
string result
= string.Format(
"{0}----{1}",
ReturnParamValue(siDTO, "siDTO.SuggestionItemID,siDTO.Title"));
Хотя это не будет полностью работать, поскольку ваш исходный код, по-видимому, предоставляет только одно значение, и в строке формата у вас есть два значения - {0}
будет заменено значением из вашей функции, а {1}
оставить без изменений.
Какой выход вы ожидаете?
Ваша функция ReturnParamValue()
пытается вернуть и метку, и значение в одной строке? Если это так, и если они разделены запятыми, то вы можете попробовать это:
var value = ReturnParamValue(siDTO, "siDTO.SuggestionItemID,siDTO.Title"));
var pieces = string.Split(',');
string result
= string.Format( "{0}----{1}", pieces[0], pieces[1]);
Хотя это серьезно работает слишком усердно, если ReturnParamValue()
- это метод, которым вы управляете.
Обновление пт 6 августа
Проверьте декларацию для string.Format()
, как показано на MSDN :
public static string Format(
string format,
params Object[] args
)
В отличие от специального кожуха, который вы могли видеть в C для printf()
, нет ничего особенного или необычного в том, как string.Format()
обрабатывает несколько параметров. Ключом является ключевое слово params , которое просит компилятор предоставить небольшой "синтаксический сахар" , где он объединяет параметры в массив для вас.
Ключевым моментом здесь является то, что перенос не произойдет, если вы уже передаете один object[]
- поэтому, если вы хотите, вы можете сделать что-то вроде этого:
object[] parameters
= ReturnParamValues(siDTO, "siDTO.SuggestionItemID,siDTO.Title");
string result
= string.Format("{0}----{1}----{2}", parameters);
Хотя, если бы я увидел что-то подобное в любой кодовой базе, которую я поддерживал, я бы воспринимал это как запах кода и искал лучший способ решения проблемы.
То, что это возможно не означает, что желательно . YMMV, конечно.