在C#表单中转义花括号输入

3
我知道在使用String.Format时,如果要使用花括号,请使用双重花括号,即"{{"和"}}"。我的问题是,如果我从表单获得一个字符串,如何使其与此格式兼容?我尝试过。
str.Replace("{","{{");
str.Replace("}","}}");

但是这似乎不起作用,有什么想法吗?

1
你必须这样做吗?通常情况下,当你内部接收到一个字符串(即你不是手动硬编码字符串),它应该已经被正确格式化了。所以我再问一遍,你必须这样做吗? - Nolonar
1
它是完全不起作用还是在做一些疯狂的事情? - DotNetRussell
1
@Nolonar:这不是转义序列,因此它在这里不适用。即使该字符串来自用户界面,这种替换也是必要的。 - Daniel Hilgarth
3个回答

8

String是一个不可变类。你必须将更正后的字符串重新分配给str

str = str.Replace("{","{{");
str = str.Replace("}","}}");

+1 - 你也可以连锁替换。 str = str.Replace("{","{{").Replace("}","}}"); - keyboardP
1
是的,我就是那样做的。让我的教授们非常不满意,因为我喜欢将方法调用链接得很深。 ;) - Tyler Lee
哇,那真是个简单的修复...现在还很早。谢谢你的回答。我会在允许的时候标记它。 - Mark Cheek

3

str.Replace 不会改变 str 的值,它返回一个新的实例。

因此,您可能希望尝试这个方法:

str = str.Replace(...);

3

尝试:

    str = str.Replace("{","{{");
    str = str.Replace("}","}}");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接