首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么.NET设计器创建这样的代码: Classes.Customer customer1 =newClasses.Customer();

为什么.NET设计器创建这样的代码: Classes.Customer customer1 =newClasses.Customer();
EN

Stack Overflow用户
提问于 2015-07-20 14:14:13
回答 1查看 78关注 0票数 0

我使用C#,.NET 4.5.1,VS 2013。

如果我像这样创建一个UserControl,有一个包含另一个类的属性,任何人能解释我的确切原因吗?

代码语言:javascript
复制
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窗体上时,他会在设计器中生成该代码:

代码语言:javascript
复制
Classes.Customer customer1 = new Classes.Customer();
this.customer1 = new Classes.Customer();

以下是:

代码语言:javascript
复制
// 
// customerSelect1
// 
this.customerSelect1.Customer = customer1;

为什么他会自动创建一个新客户?我尝试用= null,=newClasses.Customer()更改私有属性的初始化,删除我的控件,删除代码,再次添加,得到相同的结果。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-20 14:35:42

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

代码语言:javascript
复制
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public Classes.Customer Customer
{
    get { return customer; }
    set { customer = value; }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31518820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档