字符串插值中需要一个恒定值

PBG*_*PBG 2 c# string-interpolation

我的代码如下

static string Foo(string str, int width)
{
    return $"{str,width}";
}
Run Code Online (Sandbox Code Playgroud)

编译器不允许我使用该width变量。如何将其传递给方法?

daz*_*sed 6

在这种情况下,最好使用string.Format而不是插值。

var str = "test";
var width = 10;
var fmt = $"{{0,{width}}}";
var result = string.Format(fmt, str);
Run Code Online (Sandbox Code Playgroud)

但是,如果您只是用空格填充PadLeft或者PadRight会更干净...

return str.PadLeft(width, ' ');
Run Code Online (Sandbox Code Playgroud)