【问题标题】:str.Split(".") not working in C# interactive window but work in C# .Net core project?str.Split(".") 不在 C# 交互式窗口中工作,但在 C# .Net 核心项目中工作?
【发布时间】:2020-02-10 21:58:30
【问题描述】:

(Visual Studio 2019,.Net Core 3.1)

以下表达式在 C# 交互窗口中出错。

"".Split("")
(1,10): error CS1503: Argument 1: cannot convert from 'string' to 'char'

该方法需要哪个程序集? Visual Studio 显示方法定义在C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.dll

【问题讨论】:

    标签: c# .net-core .net-core-3.1


    【解决方案1】:

    将单个字符串作为参数(而不是数组)的 string.Split 重载是 .NET Core 2.0 中的新功能。

    C# Interactive 针对 .NET Framework 运行,因此它永远不会获得这些 API。

    您可以通过从交互式对话框中读取System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription 来验证这一点。

    【讨论】:

      【解决方案2】:

      您尝试使用的将字符串作为第一个参数的重载已添加到 net-core.您可以查看it here 的文档。

      在常规 .NET 框架中,不存在这种重载。你可以看到重载here。

      C# 交互正在针对框架运行。您可以通过在交互式 shell 中运行 Console.WriteLine(Environment.Version); 并获取类似 4.0.30319.***** 的值而不是类似 3.1.1 的值来看到这一点。在发布与核心一起使用的 C# 交互式版本之前,您将无法从 C# 交互式访问核心 BCL。

      【讨论】:

        猜你喜欢
        • 2020-01-17
        • 1970-01-01
        • 1970-01-01
        • 2019-03-19
        • 1970-01-01
        • 2019-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多