Ответ 1
Там только отступы и выравнивание формируются... Так что простой способ, как вы сказали, использовать "John".ToUpper()
или "John".ToLower()
.
Другим решением может быть создание пользовательского IFormatProvider
, чтобы предоставить нужный формат строки.
Вот как будет выглядеть IFormatProvider
и string.Format call.
public class CustomStringFormat : IFormatProvider, ICustomFormatter
{
public object GetFormat(Type formatType)
{
if (formatType == typeof(ICustomFormatter))
return this;
else
return null;
}
public string Format(string format, object arg, IFormatProvider formatProvider)
{
string result = arg.ToString();
switch (format.ToUpper())
{
case "U": return result.ToUpper();
case "L": return result.ToLower();
//more custom formats
default: return result;
}
}
}
И вызов будет выглядеть так:
String.Format(new CustomStringFormat(), "Hi {0:U}", "John");