C# 我应该有异常阻止用户在字符串中输入例如{0}或{2}吗
就像今天我发现这样的事情会发生。我将值直接放在字符串中,但假设是用户放的更新的示例:C# 我应该有异常阻止用户在字符串中输入例如{0}或{2}吗,c#,C#,就像今天我发现这样的事情会发生。我将值直接放在字符串中,但假设是用户放的更新的示例: int age = 21; // Users gives age 21 string s1 = "John {0}"; // Users gives name john and inputs this too {0} Console.WriteLine(s1, age); // Me wanting to show his name along with the {0} and the ag
int age = 21; // Users gives age 21
string s1 = "John {0}"; // Users gives name john and inputs this too {0}
Console.WriteLine(s1, age); // Me wanting to show his name along with the {0} and the age
Output is :John 21
Outpout wanted is John {0} 21
如果你称之为:
Console.WriteLine("{0} {1}", "John {0}", 21);
(此处,“{0}{1}”
是您提供的格式,而不是用户输入的格式。)
输出将是:
John {0} 21
通过格式化用户输入的数据,大括号不会被视为特殊的
在代码中,您可以将其称为:
Console.WriteLine("{0} {1}", s1, age);
如果你称之为:
Console.WriteLine("{0} {1}", "John {0}", 21);
(此处,“{0}{1}”
是您提供的格式,而不是用户输入的格式。)
输出将是:
John {0} 21
通过格式化用户输入的数据,大括号不会被视为特殊的
在代码中,您可以将其称为:
Console.WriteLine("{0} {1}", s1, age);
但这正是
控制台.WriteLine的超负荷功能的作用所在?如果在您调用重载时用户将{0}
放入字符串中,您希望输出是什么?我希望它显示Hello{0}。那么为什么要传递number
?如果您不希望它自动使用额外信息格式化字符串,请不要调用使用额外信息格式化字符串的重载Console.WriteLine(s1)
将愉快地输出Hello{0}
我认为您需要使用不同的输入/预期输出来改进示例。现在真的不清楚你的问题到底是什么。但这就是超负荷的Console.WriteLine
的目的吗?如果在您调用重载时用户将{0}
放入字符串中,您希望输出是什么?我希望它显示Hello{0}。那么为什么要传递number
?如果您不希望它自动使用额外信息格式化字符串,请不要调用使用额外信息格式化字符串的重载Console.WriteLine(s1)
将愉快地输出Hello{0}
我认为您需要使用不同的输入/预期输出来改进示例。现在真的不清楚你的问题到底是什么。我不能这样做,因为我不知道字符串的值是什么,因为用户实际输入了值,所以我无法知道他是否弄错了,并将{0}与他的名字一起添加。@GeorgeOscStephan这个答案意味着你不必关心他是否放入了{0}
in或not。但是如何调用Console.WriteLine(“{0}{1}”,“John{0}”,21)代码>当我不知道姓名或年龄时,或者你的意思是这与控制台.WriteLine(“{0}{1}”,s1,年龄)相同代码>是,Console.WriteLine(“{0}{1}”,s1,年龄);感谢您选择了最佳答案。我不能这样做,因为我不知道字符串将具有什么值,因为用户实际输入了值,所以我无法知道他是否弄错并将{0}与他的名字一起添加。@GeorgeOscStephan此答案意味着您不必关心他是否放置了{0}
in或not。但是如何调用Console.WriteLine(“{0}{1}”,“John{0}”,21)代码>当我不知道姓名或年龄时,或者你的意思是这与控制台.WriteLine(“{0}{1}”,s1,年龄)相同代码>是,Console.WriteLine(“{0}{1}”,s1,年龄);谢谢你选择了最好的答案。