我正在使用标准String.Format
方法。它正在使用数字对象。
Console.WriteLine("obj1 = {0} and obj2 = {1}", "obj1", "obj2");
我想使用命名索引。就像这个
Console.WriteLine("obj1 = {o1} and obj2 = {o2}",
new { o1 = "obj1", o2 = "obj2"});
我如何使用相同的最后一个代码?
答案 0 :(得分:3)
在这种情况下,您可以尝试使用Replace("{o1}", o1.ToString())
方法,
答案 1 :(得分:2)
String.Format仅支持格式字符串的位置(0,1,2,...)值。
您需要编写自己的版本以支持命名参数。
答案 2 :(得分:1)
你不能。
在您提供的示例中,您可以创建一个方法来执行以下操作:
private void PrintVariables(Dictionary<string, object> variables)
{
Console.WriteLine(string.Join(
" and ", variables.Select(kvp => string.Format("{0} = {1}",
kvp.Key,
kvp.Value))));
}
来自外部的用法可能是:
int num = 3;
string str = "hi";
bool b = true;
this.PrintVariables(new Dictionary<string, object>
{
{"MyNumber", num},
{"MyString", str},
{"MyBool", b}
});