C# - Visual Studio 在其他控件上添加 UserControl 时强制终止

C# - Visual Studio is forced terminated when UserControl is added on other control

.NET 框架 3.5 我制作了一个简单的 UserControl,由 label1 和 label2 组成。

我重写了字体属性。

public override Font Font  
{  
   get  
   {  
       return this.Font;
   }
   set
   {
       label1.Font = value;
       label2.Font = value;
   }
}

然后我在其他窗体上添加了UserControl。 然而 visual studio 被强制终止。
这段代码有什么问题?

如果您只想覆盖 setaccessor,请使用:

public override Font Font  
{  
  set
  {
    label1.Font = value;
    label2.Font = value;
  }
}

永远不要打电话给

get
   {
     return this.Font;
   }

因为它是递归调用,它会导致您的崩溃问题。

这是一个无限循环!如果您尝试获取 Font (auto-)属性,它将尝试获取 Font (auto-)属性 等等...

public override Font Font{  
   get  
   {  
       return this.Font;  ←This calls itself
   }