using System;
using System.Text;
using System.Threading;
public static class Program {
public static void Main() {
StringBuilder sb = new StringBuilder();
sb.AppendFormat(new BoldInt32s(), "{0} {1} {2:M}", "Jeff", 123, DateTime.Now);
Console.WriteLine(sb);
}
}
internal sealed class BoldInt32s : IFormatProvider, ICustomFormatter {
public Object GetFormat(Type formatType) {
if (formatType == typeof(ICustomFormatter)) return this;
return Thread.CurrentThread.CurrentCulture.GetFormat(formatType);
}
public String Format(String format, Object arg, IFormatProvider formatProvider) {
String s;
IFormattable formattable = arg as IFormattable;
if (formattable == null) s = arg.ToString();
else s = formattable.ToString(format, formatProvider);
if (arg.GetType() == typeof(Int32))
return "<B>" + s + "</B>";
if (arg.GetType() == typeof(String))
return "<p>" + s + "</p>";
return s;
}
}
本文介绍了一个自定义格式提供者BoldInt32s的实现,该类实现了IFormatProvider和ICustomFormatter接口,能够根据不同类型的输入返回带有HTML标签的格式化字符串。示例代码展示了如何使用StringBuilder结合此类进行格式化输出。
3

被折叠的 条评论
为什么被折叠?



