为啥 .NET 设计师创建这样的代码: Classes.Customer customer1 = new Classes.Customer();
Posted
技术标签:
【中文标题】为啥 .NET 设计师创建这样的代码: Classes.Customer customer1 = new Classes.Customer();【英文标题】:Why .NET designer create code like this: Classes.Customer customer1 = new Classes.Customer();为什么 .NET 设计师创建这样的代码: Classes.Customer customer1 = new Classes.Customer(); 【发布时间】:2015-07-20 14:14:13 【问题描述】:我使用 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, = new Classes.Customer() 更改私有属性的初始化,删除我的控件,代码,再次添加,我总是得到相同的结果。
如果有人能解释一下我理解的错误,谢谢。
【问题讨论】:
对不起,我错误地删除了第一条评论,他说我有关 DesignerSerializationVisibility。似乎只是要设置的隐藏参数。 【参考方案1】:这是具有 getter 和 setter 的公共属性的正常行为,该属性在设计时具有不是 [DefaultValue] 的值。您必须告诉设计者不要序列化该属性,也不要在“属性”窗口中显示它:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public Classes.Customer Customer
get return customer;
set customer = value;
【讨论】:
以上是关于为啥 .NET 设计师创建这样的代码: Classes.Customer customer1 = new Classes.Customer();的主要内容,如果未能解决你的问题,请参考以下文章
为啥 .NET 自带的 JsonSerializer 无法序列化 Field ?
新装的my eclipse 中为啥没有src源文件,这样我怎么才能建立源文件呢?
asp.net 建 ashx的时候为啥没有 ashx.cs 后台文件