这是功能:
public void Init(System.Type Type) {
this.Type = Type;
BuildFieldAttributes();
BuildDataColumns(FieldAttributes);
}
Run Code Online (Sandbox Code Playgroud)
我在第一行(this.Type = Type)上设置了一个断点,我想打破这个时间Type.FullName == "Malt.Organisation",这就是我输入的条件.
但是,当命中该行时会显示以下错误:
断点的条件无法执行.条件是'Type.FullName =="Malt.Organisation"'.返回的错误是'在此上下文中不支持在System.Type类型的调试对象中检查对象的状态.'
我做错了什么(显而易见的)?
PS.解决方法是将其添加到代码中:
if (Type.FullName == "Malt.Organisation") System.Diagnostics.Debugger.Break();
Run Code Online (Sandbox Code Playgroud) 我正在运行Visual Studio 2015,人们声称在即时窗口,手表和其他地方支持lambda表达式.但那对我不起作用.我使用以下代码创建了一个新的控制台应用程序:
static void Main(string[] args)
{
var list = new List<int> {1, 2, 3, 4, 5, 6, 7};
}
Run Code Online (Sandbox Code Playgroud)
然后在即时窗口尝试一些简单的lambdas并观察,如下所示:

正如你所看到的,它给了我"表达式不能包含lambda表达式".我查看了工具 - >选项 - >调试设置但找不到与该问题相关的任何内容.我运行的版本是VS2015 Enterprise,14.0.24720.00 Update 1可能导致此问题的原因是什么?
C#Interactive似乎比立即窗口更强大(至少它处理LINQ中经常使用的lambda表达式 - 请参阅Visual Studio调试"快速监视"工具和lambda表达式),但看起来它不能用作一个替代品,因为它不知道调试器上下文.有没有办法访问调试器上下文?
我已经看到在F#中获取调试器上下文,它可能需要相同的东西,但也许有新的/不同的东西可用.
http://extendedimmediatewin.codeplex.com/可能很有用,但看起来已经死了,虽然有人在2011年10月18日说他打算将它移植到VB.Net(http://extendedimmediatewin.codeplex.com/discussions/75589).
可能重复:
VS调试"快速监视"工具和lambda表达式
我很好奇是否有理由在调试时Visual Studio立即窗口中不允许这样做?
我有一个看似无辜的代码片段,我在Visual Studio 2008 立即窗口中输入.
? results.Join(lstDocs, Function(docID) docID)
Evaluation of lambda expressions is not valid in the debugger.
Run Code Online (Sandbox Code Playgroud)
正如消息所说,在调试器中调用lambda表达式是不可能的.
为什么不允许?
如何计算0列表中每个数组中等于的元素?
我有一份清单List<byte[]> piks.我想计算每个有byte[]多少元素相等0.
我尝试了几种方法:
from c in piksle_lista_tablic[84]
where (c.Equals(0))
select c
Run Code Online (Sandbox Code Playgroud)
要么
piksle_lista_tablic[84].Count(n => n == 0)
Run Code Online (Sandbox Code Playgroud)
我总是得到错误Expression cannot contain lambda expressions.
例如:
piks[1]是一个包含1156项目的数组,我想知道该数组中有多少特定元素.
PS:我可以在观察窗口使用Linq吗?
说我有以下方法:
public List<List<int>> DoSomething () {
List<List<int>> result;
//Do some things
return result; //Would like to breakpoint here
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用条件断点,例如:
result.Any(i => i.Any(j => j < 0))
Run Code Online (Sandbox Code Playgroud)
我收到一条错误,说你不能在条件断点中使用lambda表达式.这是为什么?