단지 패딩 및 배열을 형성하는 중입니다 ... 쉬운 방법은 말한대로 "John".ToUpper()
또는 "John".ToLower()
을 사용하는 것입니다.
또 다른 솔루션은 맞춤 문자열 IFormatProvider
을 만들어 원하는 문자열 형식을 제공 할 수 있습니다.
이렇게하면 IFormatProvider
과 string.Format 호출이 표시됩니다.
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");
,하지만 난 그냥 (.tolower 호출 이유 참조) 또는 문자열에 .toupper() 할 수 params는 문제입니다. – tjmoore
"문자열 params에서 .tolower() 또는 .toupper()를 호출하는 것이 왜 문제인지는 알 수 없습니다. 예를 들어 데이터 바인딩. – Joe
나는 같은 상황에 처해있다. .ToLower()가 나를 위해 작동하지 않는 이유는 데이터베이스에서 서식 지정 문자열 (예 : 최종 사용자가 구성 가능)을 가져 오는 것입니다. – Ryan