あなたはAakashMのソリューションを使用できます。あなたはクラスがフォーマットされてコントロールしている場合ではなく(
int ratio1 = 0;
int ratio2 = 200;
string result = String.Format(RatioFormatProvider.Instance, "The first value is: {0:ratio} and the second is {1:ratio}", ratio1, ratio2);
:あなたは非常に読みやすい形式の文字列を作成することができ、このプロバイダとの
internal class RatioFormatProvider : IFormatProvider, ICustomFormatter
{
public static readonly RatioFormatProvider Instance = new RatioFormatProvider();
private RatioFormatProvider()
{
}
#region IFormatProvider Members
public object GetFormat(Type formatType)
{
if(formatType == typeof(ICustomFormatter))
{
return this;
}
return null;
}
#endregion
#region ICustomFormatter Members
public string Format(string format, object arg, IFormatProvider formatProvider)
{
string result = arg.ToString();
switch(format.ToUpperInvariant())
{
case "RATIO":
return (result == "0") ? result : "1:" + result;
default:
return result;
}
}
#endregion
}
:あなたはもう少し読みやすい何かをしたい場合は、独自のプロバイダを作成することができますInt32のような基本的なものよりも)、これをより良く見せることができます。詳細はthis articleを参照してください。
これまでの回答に感謝します。私は示唆しているようにいくつかの条件付き書式設定を行うことができますが、実際にはデータの列全体に適用するなど、単一の書式設定文字列が必要であることを指摘しておきます。 – user7239