为什么.NET设计器创建这样的代码:Classes.Customer customer1=new Classes.Cus
本文关键字:Classes Customer customer1 Cus new 代码 NET 创建 为什么 | 更新日期: 2023-09-27 18:03:40
我使用C#,.NET 4.5.1,VS 2013。
如果我创建了一个这样的UserControl,并且有一个包含另一个类的属性:,有人能准确地解释我吗
public partial class CustomerSelect : UserControl
{
public Classes.Customer Customer
{
get { return customer; }
set { customer = value; }
}
private Classes.Customer customer;
public CustomerSelect()
{
InitializeComponent();
customer = new Classes.Customer();
}
}
当我把这个控件放在Windows窗体上时,他会在设计器中生成代码:
Classes.Customer customer1 = new Classes.Customer();
this.customer1 = new Classes.Customer();
下面是:
//
// customerSelect1
//
this.customerSelect1.Customer = customer1;
为什么他会自动创建一个新客户?我试图用=null,=newClasses.Customer((更改私有属性的初始化,删除我的控件、代码,再次添加,结果总是一样的。
如果有人能解释我理解错了什么,谢谢。
这是具有getter和setter的公共属性的正常行为,该属性在设计时的值不是[DefaultValue]。您必须告诉设计器不要序列化属性,也不要在"属性"窗口中显示它:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public Classes.Customer Customer
{
get { return customer; }
set { customer = value; }
}