C#输入字符串的格式不正确?
我的代码有什么问题?这是我的密码:C#输入字符串的格式不正确?,c#,C#,我的代码有什么问题?这是我的密码: public override string ToString() { return String.Format("Number : {0} \nFloors:{1} \nStreet \n{ \nName : {2},\nLength : {3}\n}",Number,Floors,Street.Name,Street.Length); } 你需要避开你的花括号: "Number : {0} \nFloors:{1} \nStreet \n{{ \
public override string ToString()
{
return String.Format("Number : {0} \nFloors:{1} \nStreet \n{ \nName : {2},\nLength : {3}\n}",Number,Floors,Street.Name,Street.Length);
}
你需要避开你的花括号:
"Number : {0} \nFloors:{1} \nStreet \n{{ \nName : {2},\nLength : {3}\n}}"
如果需要在结果字符串中使用{
或}
,则需要将其转义为{{
和}
,使用C#6,我将使用字符串插值:
public override string ToString()
{
return $"Number : {Number} \nFloors:{Floors} \nStreet \n{{ \nName : {Street.Name},\nLength : {Street.Length}\n}}";
}
另外:正如Manfred Radlwimmer所说,您需要将{
转义为{
和}
转义为如果不是C#6,则在StringBuilder上操作
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("Number : @number \nFloors:@floors \nStreet \n@streetName : @streetLength\n");
sb.Replace("@number", Number)
.Replace("@floors", Floors)
.Replace("@streetName", Street.Name)
.Replace("@streetLength", Street.Length);
return sb.ToString();
}
数字、楼层、街道、名称和街道的类型是什么?长度、数量、楼层和长度是INTING类型,这并不重要,因为没有任何格式选项。它是有效的。谢谢。@ ErikHakobyan,因为答案适用于您,请考虑通过点击旁边的灰色复选标记来接受它。这将让其他网站访问者知道你已经找到了答案,并在堆栈溢出上为你赢得一个新的徽章。我做到了。谢谢。