Возвращение к UIViewController с большим заголовком после установки прозрачной панели навигации

Я думаю, что эти строки всегда будут иметь одинаковое количество параметров, даже если они могут измениться. Например, сегодня template является "Hi {name}", а завтра может быть "Hello {name}".

Короткий ответ: Нет, вы не можете делать то, что вы предложили.

Альтернатива 1: используйте метод string.Format .

Вы можете сохранить в своей базе данных что-то вроде этого:

"Hi {0}"

Затем, когда вы извлекаете шаблон строки из db, вы можете написать:

var template = "Hi {0}"; //retrieved from db
var name = "Joe";
var result = string.Format(template, name);
//now result is "Hi Joe"

С двумя параметрами:

var name2a = "Mike";
var name2b = "John";
var template2 = "Hi {0} and {1}!"; //retrieved from db
var result2 = string.Format(template2, name2a, name2b);
//now result2 is "Hi Mike and John!"

Альтернатива 2: используйте заполнитель.

Вы можете сохранить в своем что-то вроде этого:

"Hi {name}"

Затем, когда вы извлекаете шаблон строки из db, вы можете написать:

var template = "Hi {name}"; //retrieved from db
var name = "Joe";
var result = template.Replace("{name}", name);
//now result is "Hi Joe"

С тремя параметрами:

var name2a = "Mike";
var name2b = "John";
var template2 = "Hi {name2a} and {name2b}!"; //retrieved from db
var result2 = template2
    .Replace("{name2a}", name2a)
    .Replace("{name2b}", name2b);
//now result2 is "Hi Mike and John!"

Обратите внимание, на какой маркер вы выбираете для своих заполнителей. Здесь я использовал окружающие фигурные скобки {}. Вы должны найти что-то, что вряд ли вызовет столкновения с остальной частью вашего текста. И это полностью зависит от вашего контекста.

2
задан SamRowley 22 March 2019 в 11:58
поделиться