为什么 .NET 设计人员创建这样的代码:Classes.Customer customer1 = new Classes.Customer();
Why .NET designer create code like this: Classes.Customer customer1 = new Classes.Customer();
我使用 C#、.NET 4.5.1、VS 2013。
任何人都可以准确地解释我为什么,如果我创建一个像这样的 UserControl,其中 属性 包含另一个 class:
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, = new Classes.Customer() 更改私有 属性 的初始化,删除我的控件、代码,再次添加,我总是得到相同的结果。
如果有人能解释我理解的错误,谢谢。
这是具有 getter 和 setter 的 public 属性 的正常行为,其在设计时的值不是 [默认值]。你必须告诉设计者不要序列化 属性 并且不要在属性 window:
中显示它
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public Classes.Customer Customer
{
get { return customer; }
set { customer = value; }
}
我使用 C#、.NET 4.5.1、VS 2013。
任何人都可以准确地解释我为什么,如果我创建一个像这样的 UserControl,其中 属性 包含另一个 class:
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, = new Classes.Customer() 更改私有 属性 的初始化,删除我的控件、代码,再次添加,我总是得到相同的结果。
如果有人能解释我理解的错误,谢谢。
这是具有 getter 和 setter 的 public 属性 的正常行为,其在设计时的值不是 [默认值]。你必须告诉设计者不要序列化 属性 并且不要在属性 window:
中显示它[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public Classes.Customer Customer
{
get { return customer; }
set { customer = value; }
}