我做过这样的事;
var list; //-> i want to declare this list once time
if (gvd.ID.Equals("gvAccountSetup"))
{
ClsAccountHead AccountHead = new ClsAccountHead();
AccountHead.CampusId = cmbAccCampus.SelectedValue.ToInt32();
// here i want to intialize the same list with other type
list = new List<ClsAccountHead>();
list = AccountHead.AccountHeadListByCampusId(PageIndex + 1, PageSize);
}
else if (gvd.ID.Equals("gv_AccSubHead"))
{
ClsAccountSubHead AccountSubHead = new ClsAccountSubHead();
AccountSubHead.HeadId = cmbSrchAccHead.SelectedValue.ToInt32();
// here i want to intialize the same list with another type
list = new List<ClsAccountSubHead>();
list = AccountSubHead.SubHeadGetListByHeadIdWithPaging(PageIndex, PageSize);
}
因此,我的问题是,我如何编写一个声明一次的列表(泛型),然后我可以通过它传递;
发布于 2013-03-29 05:56:51
您可以简单地创建一个“标记”元素,并让您的所有类实现它,并且:
internal interface TagInterface { } // rename it as appreciated
public class MyList<T> : List<T> where T : TagInterface { }
var list = new MyList<ClsAccountHead>();
或者简单地说:
var list = new List<TagInterface>();
发布于 2013-03-29 06:02:16
只需使用项目的基类或接口作为List
的T
。
var list = new List<BaseAccountHead>();
并确保您的类型扩展此类型:
class BaseAccountHead { }
class ClsAccountHead : BaseAccountHead { }
class ClsAccountSubHead : BaseAccountHead { }
https://stackoverflow.com/questions/15698118
复制相似问题