如何为 VS 2013 重写使用字符串插值的函数?
How to rewrite function that uses string interpolation for VS 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])=(?<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;
}
字符串插值只是 String.Format
:
的一种更好的语法
return String.Format("{0}={1}", m.Groups["letter"].Value, newValue);
字符串插值可以通过调用 string.Format
:
来替换
return string.Format("{0}={1}", m.Groups["letter"].Value, newValue);
或者在这个简单的例子中通过字符串连接:
return m.Groups["letter"].Value + "=" + newValue;
我使用的是 visual studio 2017,但在我们的服务器上我们使用的是 visual studio 2013。我一直收到一个错误,提示意外字符 $
我做了一些研究,但 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;
}
字符串插值只是 String.Format
:
return String.Format("{0}={1}", m.Groups["letter"].Value, newValue);
字符串插值可以通过调用 string.Format
:
return string.Format("{0}={1}", m.Groups["letter"].Value, newValue);
或者在这个简单的例子中通过字符串连接:
return m.Groups["letter"].Value + "=" + newValue;