C# 字符串格式化程序可以用变量参数化吗? 例子
以下是一个例子:C# 字符串格式化程序可以用变量参数化吗? 例子,c#,.net,string,string-formatting,C#,.net,String,String Formatting,以下是一个例子: public class Program { public static void Main(string[] args) { Console.WriteLine("Test {0, 10}", 1100); Console.WriteLine("Test {0, 10}", 2); Console.WriteLine("Test {0, 10}", 40); } } 输出为: Test 11
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Test {0, 10}", 1100);
Console.WriteLine("Test {0, 10}", 2);
Console.WriteLine("Test {0, 10}", 40);
}
}
输出为:
Test 1100
Test 2
Test 40
Press any key to continue . . .
问题:
是否可以在上述示例变量中设置数字10
以下描述了意图,但由于预期的是字符串,而不是int
,因此未编译:
public class Program
{
public static void Main(string[] args)
{
int i = 10;
Console.WriteLine("Test {0, i}", 1100);
Console.WriteLine("Test {0, i}", 2);
Console.WriteLine("Test {0, i}", 40);
}
}
一个简单的解决办法是:
public class Program
{
public static void Main(string[] args)
{
int i = 10;
Console.WriteLine("Test {0, " + i + "}", 1100);
Console.WriteLine("Test {0, " + i + "}", 2);
Console.WriteLine("Test {0, " + i + "}", 40);
}
}
使用C#6,您可以使用:
在C#6中使用字符串插值的好处是,它包括对变量的编译时检查。为了使字符串插值工作,您需要在字符串前面加上美元符号($
)
没有字符串插值的另一个选项是:
int i = 10;
Console.WriteLine("Test {0, " + i + "}", 1100);
Console.WriteLine("Test {0, " + i + "}", 2);
Console.WriteLine("Test {0, " + i + "}", 40);
或:
那细绳混凝土呢<代码>控制台.WriteLine(“Test{0,+i+”}),1100)那不是他问的我的答案怎么了?想解释一下我做错了什么吗?在你编辑它之前它是错的,这与@disklosrMy留下的评论是同一时间的。我的评论是针对你的回答的第一个版本,没有回答op的问题。在您编辑后,我删除了-1
int i = 10;
Console.WriteLine("Test {0, " + i + "}", 1100);
Console.WriteLine("Test {0, " + i + "}", 2);
Console.WriteLine("Test {0, " + i + "}", 40);
Console.WriteLine("Test " + 1100.ToString().PadLeft(i));
Console.WriteLine("Test " + 2.ToString().PadLeft(i));
Console.WriteLine("Test " + 40.ToString().PadLeft(i));