str.Split(“。”)在C#交互式窗口中不起作用,但在C#.Net核心项目中起作用?

时间:2020-02-10 21:58:30

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

(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

中定义

2 个答案:

答案 0 :(得分:5)

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

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

您可以通过从“互动”对话框中读取System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription来进行验证。

答案 1 :(得分:2)

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

在常规.NET框架中,此重载不存在。您可以看到超载here

C#Interactive正在针对框架运行。您可以通过在交互式外壳程序中运行Console.WriteLine(Environment.Version);并返回诸如4.0.30319.*****之类的值而不是诸如3.1.1之类的值来看到此情况。直到有适用于核心产品的C#交互版本,您才能从C#交互访问核心BCL。