将Struct传递给String.Format作为args

Arn*_*das 3 c# string struct

是否可以使用结构作为这样的参数string.Format:

struct kid
{
    public string name;
    public int age;
};

kid.name = alice;
kid.age = 2;

Console.WriteLine(String.Format("Her name is {0} and she's {1} years old", kid));
Run Code Online (Sandbox Code Playgroud)

而不是这个:

Console.WriteLine(String.Format("Her name is {0} and she's {1} years old", kid.name ,kid.age));
Run Code Online (Sandbox Code Playgroud)

编辑:

该字符串将在运行时从配置文件中读取

Gil*_*een 7

不会.它怎么知道放在哪里?

你可以做什么而不是string.Format这样输入是使用c#6.0字符串插值并写如下:

Console.WriteLine($"Her name is {kid.name} and she's {kid.age} years old");
Run Code Online (Sandbox Code Playgroud)

也许覆盖它ToString()来返回它:

struct kid
{
    public override string ToString()
    {
       return $"Her name is {name} and she's {age} years old";
    }
}
Run Code Online (Sandbox Code Playgroud)

然后打电话 Console.WriteLine(kid.ToString());