return$”;({x},{y})”等;;在c#中,你能解释一下$在那里做什么吗?
这是密码return$”;({x},{y})”等;;在c#中,你能解释一下$在那里做什么吗?,c#,C#,这是密码 class Coords { public int x, y; public Coords() { x = 0; y = 0; } public override string ToString() { return $ "({x},{y})"; } } 你能解释一下$在那里做什么吗? 另外,我试图运行它,但它显示了一个编译错误。这就是字符串插值 public override string ToString() { return $"({x},
class Coords {
public int x, y;
public Coords() {
x = 0;
y = 0;
}
public override string ToString() {
return $ "({x},{y})";
}
}
你能解释一下$
在那里做什么吗?
另外,我试图运行它,但它显示了一个编译错误。这就是字符串插值
public override string ToString()
{
return $"({x},{y})";
}
这是一样的
public override string ToString()
{
return "(" + x + "," + y + ")";
}
这是一个字符串插值运算符。 它允许您在字符串块中插入C#表达式。
代码的问题似乎是$operator和字符串之间不必要的空格。关于第一个问题 你能解释一下$在那里干什么吗 Ans: $special字符将字符串文字标识为插值字符串。插值字符串是可能包含插值表达式的字符串文字。将插值字符串解析为结果字符串时,带有插值表达式的项将替换为表达式结果的字符串表示形式。此功能在C#6及更高版本的语言中可用 您可以阅读有关插值的更多信息
public override string ToString()
{
return $"({x},{y})";
}
关于你的第二个问题
我试图运行它,但它显示了一个编译错误
Ans:
从这里移开空间
return $ "({x},{y})"
^
所以它变成了
return $"({x},{y})";
如果您使用的是低于6的c#版本,那么这将与插值相同
return string.Format("({0},{1})", x, y);
它在C#5或更低版本中不适用于您的信息$是String.Format的缩写,用于字符串插值,这是C#6的一项新功能 就你而言,这和 格式(({0},{1})”,x,y) 但不允许在$和“”之间有空格。因此您应该使用 $“({x},{y})”(在$之后没有空格)
return$“({x},{y})”;检查语法错误-->
,
关于编译错误:我们需要知道您的Visual Studio版本和项目设置。当您有旧版本的Visual Studio(2013年及之前),或者您设置了旧的C语言(C#5或更低),此代码将不会编译。要更改C#版本设置,请参阅。