2010-05-21 116 views
3

我的問題是
當我想使用帶有參數的UserControl時。UserControl帶參數的構造函數

它同時調用構造函數(構造函數沒有參數,並與constroctor參數)

這是正常的情況?

如果不是,我應該如何構造對象。

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

在這裏我簡單的做用戶控件,

,並調用它的另一頁。

<%@ 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); 
+0

刪除後:this()我得到相同的結果。這是正常的嗎? – 2010-05-21 08:56:45

回答

9

不要在用戶控件上使用構造函數。

使用get/set訪問器公開屬性。

1
public FreeExperience(ItemInfo itemInfo) : this() 

:這個()是調用默認的構造函數,如果沒有爲什麼你這樣做的具體原因,你可以刪除它。

實際上,我總是用另一種方式操作,並且只有很少或沒有參數的構造函數,調用一個參數化的構造函數,並提供默認值。

+0

刪除後:this()我得到相同的結果。你能具體解釋一下你使用UC的方式嗎? – 2010-05-21 08:54:56