这是代码
class Coords {
public int x, y;
public Coords() {
x = 0;
y = 0;
}
public override string ToString() {
return $ "({x},{y})";
}
}
您能解释一下$
在做什么吗?
另外,我尝试运行它,但是显示了编译错误。
答案 0 :(得分:1)
第一个问题。
您能解释一下$在这里做什么吗?
回答:
$特殊字符将字符串文字标识为插值字符串。插值字符串是可能包含插值表达式的字符串文字。将插值字符串解析为结果字符串时,带有插值表达式的项目将由表达式结果的字符串表示形式替换。 C#6和更高版本的语言提供了此功能。
您可以了解有关插值here
的更多信息第二个问题。
我尝试运行它,但是显示了编译错误。
回答:
从此处删除空间
1.000000
它变成
return $ "({x},{y})"
^
如果您使用的是低于6的c#版本,则这与插值相同。
return $"({x},{y})";
答案 1 :(得分:0)
即字符串内插
public override string ToString()
{
return $"({x},{y})";
}
这是相同的
public override string ToString()
{
return "(" + x + "," + y + ")";
}
答案 2 :(得分:0)
这是一个字符串插值运算符。 $ - string interpolation
它允许您在字符串块内插入C#表达式。 代码的问题似乎是$运算符和您的字符串之间不必要的空格。
答案 3 :(得分:0)
您的信息在C#5或更低版本中不可用
答案 4 :(得分:0)
$是String.Format的简写,并且与字符串插值一起使用,这是C#6的新功能。See here
您的情况与
相同string.Format(“({{0},{1})”,x,y);
但是$和“之间不能有空格。因此您应该使用
$“({x},{y})”($后没有空格)