5
private static void Main()
{
    Console.WriteLine(GetRandomInteger());
    Console.ReadLine();
}

[DebuggerHidden]
private static int GetRandomInteger()
{
    Func<int> random = () => 4;
    return GetRandomInteger(random);
}

[DebuggerHidden]
private static int GetRandomInteger(Func<int> random)
{
    return random();
}

使用上面的代码,有没有办法Func<int> random = () => 4;在调试时防止线路进入?

4

2 回答 2

5

好吧,您可以使用带有[DebuggerHidden]属性的私有函数而不是labmda,并将Func<int>委托设置为私有函数。

于 2013-05-20T18:57:38.930 回答
2

[DebuggerHidden]可以在属性上使用,并且此属性的行为似乎如您所愿:

[DebuggerHidden]
private static Func<int> random
{
  get { return () => 4; }
}

这是一种解决方法,就像其他答案一样;但是,它保留了 lambda,并且可能更接近原始意图。

于 2013-05-20T19:27:33.150 回答