如何在Visual Studio 2017中修复断点表达式

时间:2019-01-30 10:32:42

标签: visual-studio visual-studio-2017

借助VS2012,您可以在断点表达式中使用一些收集方法,例如:

test.Contains("3")

但是,在2017年会引发以下错误:

  

断点条件无法执行。条件是   'test.Contains(“ 3”)'。返回的错误是“错误CS1061:'string []'   不包含“包含”的定义并且无法访问   扩展方法“包含”接受类型的第一个参数   可以找到“ string []”(您是否缺少using指令或   程序集参考?)'。单击“确定”以在此断点处停止。

这与我的VS2017实例有关还是在2017年打破了某些东西?有谁知道如何解决它。断点表达式在2012年很棒,但在2017年几乎没用。

2 个答案:

答案 0 :(得分:0)

我刚刚在我的Visual Studio Enterprise 2017版本15.9.5中尝试了此操作。我的条件断点test.Contains("foo")可以正常工作。

答案 1 :(得分:0)

您是说List<string>string[]还是test类型(正如错误消息所提示的那样)?

如果您打算使用System.Collections.Generic.List.Contains(string),只需修复test的类型。


如果您希望string[]的类型为using System; internal static class Program { private static void Main(string[] args) { string[] test = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; test.Contains("3"); //Compiler Error } } ,请读到结尾。

您收到的错误与如果从代码中的断点写入条件表达式会得到的编译器错误相同:

string[]

Contains不包含string的定义,该定义接受类型为System.Linq的第一个参数。

为了访问命名空间using中的扩展方法Enumerable.Contains,您需要使用代码中的using System.Linq; 指令将其纳入范围:

System.Linq.Enumerable.Contains(test, "3")

另外,您需要在代码中使用该名称空间中的任何类型或方法,以使断点条件按预期方式工作。

或者,您可以直接调用该方法:

using

但是,您仍然需要添加相应的var newResult = result.map(function(date) { return date.split('-')[2]; }) 指令,并在代码中实际使用该名称空间中的任何类型或方法。