Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何重写VS 2013中使用字符串插值的函数?_C#_Visual Studio_Visual Studio 2013 - Fatal编程技术网

C# 如何重写VS 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

我使用的是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;
    }
公共静态字符串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?