C# 无法将int类型隐式转换为string

C# 无法将int类型隐式转换为string,c#,string,C#,String,当我尝试使用+运算符连接两个字符时,编译器显示以下错误消息:“无法将typeint隐式转换为string” 我的代码是: const string Expr = ('$' + (char)(39)); 为什么会出现这个错误?如何修复它呢?在两个字符上使用+运算符并不会将它们合并。相反,它将它们转换为int,并添加这些int,从而生成int 解决问题的一个简单方法是使用“$”,这是一个字符串,而不是“$”,这是一个字符,但这不是常量表达式,因此在您的情况下,它将失败并出现新的编译器错误 或者您可

当我尝试使用
+
运算符连接两个字符时,编译器显示以下错误消息:“无法将type
int
隐式转换为
string

我的代码是:

const string Expr = ('$' + (char)(39));

为什么会出现这个错误?如何修复它呢?

在两个字符上使用
+
运算符并不会将它们合并。相反,它将它们转换为
int
,并添加这些int,从而生成
int

解决问题的一个简单方法是使用
“$”
,这是一个
字符串,而不是
“$”
,这是一个
字符,但这不是常量表达式,因此在您的情况下,它将失败并出现新的编译器错误

或者您可以完全跳过整数步骤,只需使用
const string Expr=“$”
。或者,如果您确实想使用整数码点,可以将其转换为十六进制并使用“$\u0027”


在一些类似的情况下,常见的解决方法是首先使用空字符串
”(
“+a+b
)。或者可以对一个(或两个)操作数手动调用
ToString()
。但在您的例子中,将
$
-前缀转换为字符串更为简洁

在两个字符上使用
+
运算符不会将它们合并。相反,它将它们转换为
int
,并添加这些int,从而生成
int

解决问题的一个简单方法是使用
“$”
,这是一个
字符串,而不是
“$”
,这是一个
字符,但这不是常量表达式,因此在您的情况下,它将失败并出现新的编译器错误

或者您可以完全跳过整数步骤,只需使用
const string Expr=“$”
。或者,如果您确实想使用整数码点,可以将其转换为十六进制并使用“$\u0027”


在一些类似的情况下,常见的解决方法是首先使用空字符串
”(
“+a+b
)。或者可以对一个(或两个)操作数手动调用
ToString()
。但在您的例子中,将
$
-前缀转换为字符串更为简洁

只需使用
String.Concat

string.Concat('$', (char)39)
字符串上的+运算符在内部被转换为该方法


此外,不能将
const
关键字与这样的表达式一起使用。请考虑使用<代码> Read Ong//C>。 只需使用
String.Concat

string.Concat('$', (char)39)
字符串上的+运算符在内部被转换为该方法


此外,不能将
const
关键字与这样的表达式一起使用。请考虑使用<代码> Read Ong//C>。 最好解释一下,我不同意以“不是一个真正的问题”来结束这个话题。当然,这不是一个好问题,但这是一个真正的问题。这可能是一个完全重复的问题,所以如果有人发现了一个重复的问题,那么出于这个原因关闭它就可以了。@CodesInChaos这个问题已经被v4venetta联系在一起,对我来说似乎是一个很好的候选问题。嗯,错过了那个。我想我们应该重新打开它,然后以完全相同的方式关闭它。最好的解释是,我不同意以“不是真正的问题”的方式关闭它。当然,这不是一个好问题,但这是一个真正的问题。这可能是一个完全重复的问题,所以如果有人发现了一个重复的问题,那么出于这个原因关闭它就可以了。@CodesInChaos这个问题已经被v4venetta联系在一起,对我来说似乎是一个很好的候选问题。嗯,错过了那个。我想我们应该重新打开它,然后作为完全相同的副本关闭它。感谢您的快速回复。但仍然会遇到相同的问题。const string Expr=“$”+(char)(39);这个表达式不能编译,因为它不是一个常量表达式。只需使用
“$”
选项。如果这是解决方案,请接受答案:感谢您的快速回复。但仍然会遇到同样的问题。const string Expr=“$”+(char)(39);这个表达式不能编译,因为它不是一个常量表达式。只需使用
“$”
选项。如果这是解决方案,请接受回答:谢谢您的快速回复。但仍然会遇到同样的问题。这是C#谢谢你的快速回复。但还是遇到了同样的问题。它是用C写的#