C# 为什么在使用格式字符串时会出现错误?

C# 为什么在使用格式字符串时会出现错误?,c#,C#,根据一本书中的一个示例,它使用带对齐的格式化字符串打印表,但最后一个参数引发异常 写线格式:{0,-20}{1,-30}{2,-50}{3,-10}, arg0:类型, arg1:内存字节数, arg2:Min, arg3:最大值; 例外情况: Program.cs28,17:错误CS1739:“WriteLine”的最佳重载没有名为“arg3”[/…]的参数 为什么会发生这种错误?另外,我在哪里可以了解更多关于字符串格式的信息?非常简单:因为没有这样的方法。arg0-arg2也有类似的方法,但

根据一本书中的一个示例,它使用带对齐的格式化字符串打印表,但最后一个参数引发异常

写线格式:{0,-20}{1,-30}{2,-50}{3,-10}, arg0:类型, arg1:内存字节数, arg2:Min, arg3:最大值; 例外情况:

Program.cs28,17:错误CS1739:“WriteLine”的最佳重载没有名为“arg3”[/…]的参数


为什么会发生这种错误?另外,我在哪里可以了解更多关于字符串格式的信息?

非常简单:因为没有这样的方法。arg0-arg2也有类似的方法,但arg3没有。有一个params object[]版本,但它不使用命名参数。去掉命名的部分,它就会工作。

非常简单:因为没有这样的方法。arg0-arg2也有类似的方法,但arg3没有。有一个params object[]版本,但它不使用命名参数。去掉命名的部分,它就会工作。

@Luc这会更有意义,因为除了在书中,我找不到任何使用这种格式的例子。我将改用String.Format。谢谢为什么会发生这个错误:这就是错误消息告诉你的!“WriteLine”的最佳重载没有名为“arg3”的参数。我认为您可能正在将参数名称作为参数读取,例如:WriteLine{0}是{1}米高,name,height;。很抱歉,我删除了我之前的评论,它没有真正回答这个问题。那本书让你注定要失败,这不是一本好的书。。Writeline必须使传递参数比使用参数数组更有效。这就是为什么像arg0:这样命名参数是有效的。但是,在需要4个参数的过载时,降压会在某个地方停止。只需删除参数名即可获得所需的重载。也许去买另一本书吧。好吧,我们都从错误中吸取了教训:@HansPassant这不是书中的一个例子,我只是使用了他们用于带3个参数的字符串的相同技术。这本书是C 8.0和.NET Core 3.0现代跨平台开发,除此之外,到目前为止,我发现它对学习C语言和python的第二语言很有帮助。你还有其他建议吗?@Luc这会更有意义,因为除了书中使用这种格式之外,我找不到其他例子。我将改用String.Format。谢谢为什么会发生这个错误:这就是错误消息告诉你的!“WriteLine”的最佳重载没有名为“arg3”的参数。我认为您可能正在将参数名称作为参数读取,例如:WriteLine{0}是{1}米高,name,height;。很抱歉,我删除了我之前的评论,它没有真正回答这个问题。那本书让你注定要失败,这不是一本好的书。。Writeline必须使传递参数比使用参数数组更有效。这就是为什么像arg0:这样命名参数是有效的。但是,在需要4个参数的过载时,降压会在某个地方停止。只需删除参数名即可获得所需的重载。也许去买另一本书吧。好吧,我们都从错误中吸取了教训:@HansPassant这不是书中的一个例子,我只是使用了他们用于带3个参数的字符串的相同技术。这本书是C 8.0和.NET Core 3.0现代跨平台开发,除此之外,到目前为止,我发现它对学习C语言和python的第二语言很有帮助。你还有其他建议吗?这解决了问题,谢谢。这解决了问题,谢谢。