C# 如何重写VS 2013中使用字符串插值的函数?
我使用的是visual studio 2017,但在我们的服务器上使用的是visual studio 2013。我一直收到一个错误,显示意外字符C# 如何重写VS 2013中使用字符串插值的函数?,c#,visual-studio,visual-studio-2013,C#,Visual Studio,Visual Studio 2013,我使用的是visual studio 2017,但在我们的服务器上使用的是visual studio 2013。我一直收到一个错误,显示意外字符$,我做了一些研究,VS2013不支持字符串插值。是否有其他方法可以从捕获组获取值 public static String RoundParams(String flashingParams) { var regex = new Regex("(?<![a-zA-Z])(?<letter>[a-zA-Z
$
,我做了一些研究,VS2013不支持字符串插值。是否有其他方法可以从捕获组获取值
public static String RoundParams(String flashingParams)
{
var regex = new Regex("(?<![a-zA-Z])(?<letter>[a-zA-Z])=(?<value>[^,]+)");
var result = regex.Replace(flashingParams, m =>
{
var newValue = m.Groups["letter"].Value.Any(char.IsUpper)
? RoundDoubleTo(Convert.ToDouble(m.Groups["value"].Value), 2)
: RoundDoubleTo(Convert.ToDouble(m.Groups["value"].Value), 16);
return $"{m.Groups["letter"].Value}={newValue}";
});
return result;
}
公共静态字符串RoundParams(字符串flashingParams)
{
var regex=newregex((?[a-zA-Z])=(?[^,]+)”;
var result=regex.Replace(flashingParams,m=>
{
var newValue=m.Groups[“字母”].Value.Any(char.IsUpper)
?RoundDoubleTo(将.ToDouble(m.Groups[“value”].value)转换为2)
:RoundDoubleTo(转换为.ToDouble(m.Groups[“value”].value),16);
返回$“{m.Groups[“letter”].Value}={newValue}”;
});
返回结果;
}
字符串插值只是字符串格式的一种更好的语法:
return String.Format("{0}={1}", m.Groups["letter"].Value, newValue);
return string.Format("{0}={1}", m.Groups["letter"].Value, newValue);
字符串插值可以由调用String.Format
:
return String.Format("{0}={1}", m.Groups["letter"].Value, newValue);
return string.Format("{0}={1}", m.Groups["letter"].Value, newValue);
或者在这个简单的情况下,通过字符串连接:
return m.Groups["letter"].Value + "=" + newValue;
除了转换为string.Format调用之外,您还可以将Microsoft.Net.Compilers nuget包添加到项目中,并让该包处理编译。VS的早期版本将在intellisense中显示错误,但它应该可以正常编译。这可以通过Project->EnableLanguage Features菜单选项来完成。为什么您在服务器上使用Visual Studio?