为什么.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((更改私有属性的初始化,删除我的控件、代码,再次添加,结果总是一样的。

如果有人能解释我理解错了什么,谢谢。

为什么.NET设计器创建这样的代码:Classes.Customer customer1=new Classes.Cus

这是具有getter和setter的公共属性的正常行为,该属性在设计时的值不是[DefaultValue]。您必须告诉设计器不要序列化属性,也不要在"属性"窗口中显示它:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public Classes.Customer Customer
{
    get { return customer; }
    set { customer = value; }
}