Chr(34)的等效表示是什么?

16

我正在将VB.NET代码转换为c#,但是在遇到以下代码片段时停了下来。 我需要有人帮我转换Chr(34)。 请帮我将其转换为c#

VB.NET代码:

Dim inputString As String
inputString = "Some text ..."
inputString = Replace(inputString, Chr(34), "")**

我的C#转换是

string inputString = "Some text ...";
inputString = inputString.Replace(NEED HELP HERE, "");**

8
34是",所以将其替换为"\"" - Alex K.
4
可能是如何在变量中添加双引号?的重复问题。 - BugFinder
4
就这个问题而言,在VB中使用Chr(34)应该被反对,因为它很冗长并且不易读。在VB中转义一个字符串字面量中的双引号字符的方法是连续输入两个双引号字符,所以等价的写法是:Replace(inputString, """", "") - Steven Doggart
2
哇,我简直不敢相信这个问题会引起这么多关注,实际上在提出这种问题之前,你应该已经知道了...我的意思是,Google 上只有超过 430k 的搜索结果? - Trevor
1
@Codexer 世界奇观 #8:StackOverflow :D - boop_the_snoot
显示剩余4条评论
2个回答

35

您可以将整数转换为char,因此“自动”翻译如下:

inputString = inputString.Replace(, <b>((char)</b> 34<b>).ToString()</b>, "")

话虽如此,根据ASCII,映射到34的字符是",因此您可以使用双引号字符简单地构造一个字符串:

inputString = inputString.Replace(, <b>"\""</b>, "")

这也会提高可读性,因为现在清楚了您在该部分所做的事情: 您删除双引号字符。


4
可以,因为Chr(34)始终返回U+0022。但通常来说,类型转换适用于0到255的范围,但仅当用户(线程)的ANSI代码页(ACP)为28591(ISO 8859-1)时才适用于整个范围128到255。有太多需要注意的地方,不建议使用。当然,这假设使用Chr本身不是潜在的漏洞。 - Tom Blodget

5

以下是转换后的代码:

string inputString = null;
inputString = "Some text ...";
inputString = Strings.Replace(inputString, Strings.Chr(34), "");

如果您没有处理机密信息,我建议使用任何转换工具。这将节省时间。

事实上,我使用了这个工具来转换您的代码。


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