如何处理在ASP中的另一个对象中实例化的对象.NET web表单

本文关键字:实例化 一个对象 对象 NET 表单 web 何处理 处理 ASP | 更新日期: 2023-09-27 17:50:29

这可能是一个非常简单的问题,但是当涉及到从包含类型为另一个类的字段的类创建的对象时,我有点困惑。让我感到困惑的部分是如何用web表单中的数据填充字段。

例如,如果我有一个customer类,它有一个名为contact的字段,它的类型是Contact,在web表单级别填充它的正确方法是什么?目前我是这样做的,想知道这是否正确。

这是我的customer类的代码,contact是另一个类。

public class Customer
{
    private string firstName;
    private string lastName'
    private string notes;
    private Contact contact;
    public Customer()
    {
        this.contact = new Contact();
    }
    public string FirstName
    {
        get { return firstName; }
        set { firstName = value; }
    }
    public string LastName
    {
        get { return lastName; }
        set { lastName = value; }
    }
    public string Notes
    {
        get { return notes; }
        set { notes = value; }
    }
    public Contact Contact
    {
        get { return contact; }
        set { contact = value; }
    }
}

来自我的表单的代码

private Customer customer;
public WebFormSample()
{
     customer = new AddressBook.Customer();
}
protected void addButton_Click(object sender, EventArgs e)
{
     customer.FirstName = firstName.Text;
     customer.LastName = lastName.Text;
     customer.Contact.Phone = phone.Text;
     customer.Contact.Email = Email.Text;
}

这是我应该与contact对象工作的方式,还是我应该在web表单上实例化contact对象,填充它,然后将其分配给customer对象中的联系人,或者我完全错了,这应该以完全不同的方式完成?

希望这有意义。

谢谢

如何处理在ASP中的另一个对象中实例化的对象.NET web表单

你试过你发布的代码了吗?因为我希望customer.Contactnull,因为你从来没有为它创建一个实例。

所以你可以像这样修改你现有的代码:

customer.Contact = new Contact();
customer.Contact.Phone = phone.Text;
customer.Contact.Email = Email.Text;

或者你也可以按你问的做:

var contact = new Contact();
contact.Phone = phone.Text;
contact.Email = Email.Text;
customer.Contact = contact;

可能是这样的:-

Customer.Contact = new Contact { Phone = phone.Text
                                          , Email = Email.text };

Customer类不应该负责创建Contact类,它应该从外部(通过构造函数或公共属性)获取Contact实例。

如果有机会,你应该阅读更多关于依赖注入的内容。