在 c# 中的字符串中使用“*”
本文关键字:字符串 | 更新日期: 2023-09-27 18:17:27
我想在字符串中使用"*"。
我想在字符串中存储这样的东西
string strin="e list * "*"'r'n";
但是视觉工作室显示此行的错误并且不编译。错误:
运算符"*"不能应用于类型为"字符串"和"字符串"的操作数
我该如何使用它?
您需要转义字符串中的双引号,最好这样:
string strin="e list * '"*'"'r'n";
我的假设是你想要一个真正的回车符/换行符,而不是文字上的"''r'"字符,这就是为什么我去掉了"@"符号
问题不在于*
,而在于您希望在字符串中看起来也有"
。它们需要被转义:
string strin = @"e list * ""*""'r'n";
注意:上面的逐字字符串文字将嵌入字符串'r'n
- 而不是窗口行尾。对于附加行尾,我建议附加Environment.NewLine
。
或者,如果不使用逐字字符串文字:
string strin = "e list * '"*'"" + Environment.NewLine;
如果不这样做,表达式 @"e list * "*"'r'n"
被解释为字符串"e list * "
乘以 ( *
( 乘以字符串 "'r'n"
。由于 *
运算符未在字符串上定义,因此会出现错误。
string strin = @"e list * "" * ""'r'n";
只需添加 DBL 报价
你需要
在字符串文字中转义"
:
string strin=@"e list * ""*""'r'n";
使用 @
前缀时,您可以使用另一个"
对其进行转义。否则使用 '
.
您的问题是您正在尝试将两个字符串相乘,这是不允许的。如果你写这个,你会得到同样的错误
"a"*"b"
这也许更容易看到。也许你打算写
"e list * "+"'r'n"
作为一条更一般的建议,编译器发出了一条出色且内容丰富的消息:
Operator '*' cannot be applied to operands of type 'string' and 'string'
并非所有编译器都会产生如此有用的消息,但是当他们这样做时,值得仔细阅读它们。此消息将直接带您找到问题的根源。
问题不在于 *。 而是您终止字符串而不转义它。
试试这个:
string strin = @"e list * ""*""'r'n";
你的代码中有几个问题。
- 字符串
- 前面的 @ 表示使用文本字符串,而不是翻译 ''r '。 应删除 @。
删除 @ 符号后,需要在字符串中的任何引号前加上斜杠。
字符串 strin = "E 列表 * ''" * ''"''r'";