参数未用于格式化字符串
本文关键字:字符串 格式化 用于 参数 | 更新日期: 2023-09-27 17:58:24
嘿,伙计们,我确信这是否已经被问过了,但我找不到。如果它是多余的,我很抱歉。请将我链接到它。我的问题是:
错误"参数未用于格式化字符串"是什么意思?我正在使用C#
using System;
class PrintNum
{
static void Main()
{
short s = 10;
int i = 1000;
long l = 1000000;
float f = 230.47f;
double d = 30949.374;
//This is where I'm getting the error.
Console.Write("s: %d'n", s); //<<< if you hover over the variable s on the outside.
Console.Write("i: %d'n", i);
Console.Write("l: %ld'n", l);
Console.Write("f: %.3f'n", f);
Console.Write("d: %.3f'n", d);
}
}
您的格式字符串不正确。它应该是类似的东西
Console.Write("s: {0}'n", s);
其中格式字符串中的{0}
表示"格式字符串后传递的第一个参数",{1}
表示第二个参数(如果有),依此类推
与C不同,%d
和类似的格式化参数不用于C#格式字符串,并且这种格式化是通过您正在使用的类型的ToString
方法重写来处理的。
使用{0}
将参数插入字符串,0
是参数编号:
Console.Write("s: {0}'n", s);
如果您想进一步格式化您的号码,请查看文档。
此外,还有一个Console.WriteLine
方法可以避免在字符串末尾添加换行符。
正如其他答案所说,您的Console.Write需要包含"{0}",因为这是您正在编写的变量的占位符。需要注意的是,{0}、{1}等是位置参数,在字符串中必须遵循该顺序。同样重要的是要知道Console.Write在下面使用String.Format,这样您就可以使用标准数字格式字符串中描述的所有格式字符串(https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx)话虽如此,我想这就是你想要的:
sing System;
public class Test
{
public static void Main()
{
short s = 10;
int i = 1000;
long l = 1000000;
float f = 230.47f;
double d = 30949.374;
Console.WriteLine("s: {0:D}", s);
Console.WriteLine("i: {0:D}", i);
Console.WriteLine("l: {0:D}", l);
Console.WriteLine("f: {0:F}", f);
Console.WriteLine("d: {0:F}", d);
}
}
输出:
s: 10
i: 1000
l: 1000000
f: 230.47
d: 30949.37