printfの自作
Posted feedbacks - C#
まじめに実装するのは面倒だし、クックブックに向かないので #4410に書かれていたように、仕様を限定して(%d %f %s %cのみに対応して)実装。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | static string PrintF(string format, params object[] args)
{
Regex re = new Regex(@"%[dfsc%]");
int i = 0;
return re.Replace(format, delegate(Match m)
{
if (args.Length <= i)
return m.Value;
object o = args[i++];
string r = null;
switch (m.Value[1])
{
case 'd':
r = Convert.ToDecimal(o).ToString();
break;
case 'f':
r = Convert.ToDecimal(o).ToString();
break;
case 's':
r = (o == null) ? "" : o.ToString();
break;
case 'c':
if (o.GetType().IsValueType)
{
r = Convert.ToString((char)o);
}
else
{
string s = (o == null) ? "" : o.ToString();
r = s.Length > 0 ? new String(s[0], 1) : "";
}
break;
default:
r = m.Value;
break;
}
return r;
});
}
|


yappy
#4119()
[
C
]
Rating-4/18=-0.22
Rating-4/18=-0.22-0+
[ reply ]