UserControl包含参数的构造函数

时间:2010-05-21 08:41:14

标签: c# asp.net constructor

我的问题是 当我想使用带参数的UserControl时。

它调用构造函数(没有参数的构造函数和带参数的constroctor)

这是正常情况吗?

如果没有,我该如何构造对象。

public partial class FreeExperience : Arche.Web.UI.UserControlBase
{
    private ItemInfo itemInfo;
    public FreeExperience() : base()
    {
    }
    public FreeExperience(ItemInfo itemInfo) : this()
    {
        this.itemInfo = itemInfo;
    }

这里我做了简单的userControl,

并在另一页上将其称为这样。

<%@ Register TagPrefix="uc" TagName="FreeExperience" Src="include/FreeExperience.ascx" %>

...

<uc:FreeExperience ID="ucFreeExperience" runat="server"/>

并在此网页的CS的Page_load功能

ucFreeExperience = new Arche.Itempage3.include.FreeExperience(itemInfo);

2 个答案:

答案 0 :(得分:9)

不要在用户控件上使用构造函数。

使用get / set访问器公开属性。

答案 1 :(得分:1)

public FreeExperience(ItemInfo itemInfo) : this()

:this()调用默认构造函数,如果没有具体原因,可以将其删除。

实际上,我总是以相反的方式运行,并且具有很少或没有参数的构造函数,调用参数化构造函数,提供默认值。