在 c# 中的字符串中使用“*”

本文关键字:字符串 | 更新日期: 2023-09-27 18:17:27

我想在字符串中使用"*"。

我想在字符串中存储这样的东西

string strin="e list * "*"'r'n";

但是视觉工作室显示此行的错误并且不编译。错误:

运算符"*"不能应用于类型为"字符串"和"字符串"的操作数

我该如何使用它?

在 c# 中的字符串中使用“*”

您需要转义字符串中的双引号,最好这样:

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";

你的代码中有几个问题。

    字符串
  1. 前面的 @ 表示使用文本字符串,而不是翻译 ''r '。 应删除 @。
  2. 删除 @ 符号后,需要在字符串中的任何引号前加上斜杠。

    字符串 strin = "E 列表 * ''" * ''"''r'";