詰め物と整列を定式化しているだけなので、簡単な方法はあなたが言ったようなものです。"John".ToUpper()
または"John".ToLower()
を使用してください。
もう1つの解決方法は、希望の文字列形式を提供するためにカスタム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;
}
}
}
そして、呼び出しは次のようになります。私はあなたがそれを望んでいないが、ちょうど.tolower呼び出して、なぜ私が(見ることはできません知っている
String.Format(new CustomStringFormat(), "Hi {0:U}", "John");
)または.toupper()文字列にparamsは問題です。 – tjmoore
"文字列paramsで.tolower()や.toupper()を呼び出すだけでは問題が発生するのはわかりません。 – Joe
私は同じ状況に陥っています。 .ToLower()が私のために働かない理由は、フォーマット文字列がデータベースから来ているということです(つまり、エンドユーザによって設定可能です)。 – Ryan