如何在C#自动构造函数块中打破?

时间:2012-02-16 07:39:22

标签: c# visual-studio-2010

我想知道是否有办法在自动构造函数/对象初始化程序块中放置断点?

示例:

var x = new Person()
{
  Name = 'John',
  Age = DateTime.Now - Birthdate
}

我想把断点放在第4行。当为每个属性设置150个具有不同逻辑的字段时,这非常有用,并且您创建实例的类型不在您的控制之下(例如EF4实体),因此您无法创建自定义构造函数。有什么想法吗?

4 个答案:

答案 0 :(得分:4)

您可以用于此问题的解决方法是编写这样的代码以简化调试:

var x = new Person();
x.Name = "John";
x.Age = DateTime.Now - Birthdate;

答案 1 :(得分:1)

将值包装在您想在自调用函数中使用断点的行上:

var x = new Person() {
    Name = new Func<string>(() =>"John").Invoke(),
    Age = DateTime.Now - Birthdate
};

现在你将能够“踏入”它。但是,它不会有多大用处,因为在块结束之前x将保持为空。

答案 2 :(得分:1)

如果Name属性不是自动的,您可以在该属性的set内放置一个断点。

答案 3 :(得分:0)

如果你这样做那么你就不能。您可以在整个块上输出断点并使用F11逐步执行。

为什么不执行以下操作

Person p = new Person();
p.Name = "John";
p.//Blah