ali_mnkt
سه شنبه 15 تیر 1389, 21:31 عصر
با سلام
دوستان توی یه پروژه به یه نوع کد که تا حالا به اون برخورد نکرده بودم روبرو شدم که تعریف
یه کلاس بود و می گفتن به صورت generic تعریف شده . کدش به صورت زیره . آیا کسی
می تونه در رابطه با این نوع کدنویسی یه توضیحی بده که خیلی کارم گیره ؟
public class BaseBusinessObject<TBaseCollection
, TIdentity
, TBaseQuery
, TBaseObject
, TIBindableDataTable
, TDataSet>
where TBaseCollection : IBaseCollection
where TIdentity : Identity
where TBaseQuery : BaseQuery<TIBindableDataTable>, new()
where TBaseObject : BaseObject
where TIBindableDataTable : IBindableDataTable
where TDataSet : BaseBinadbleDataSet, new()
{
#region methods
public TDataSet SelectAll()
{
//create model
using (MPModel model = new MPModel())
{
using (TransactionContext trans = new TransactionContext(TransactionOption.Disabled))
{
//create Query
TBaseQuery query = new TBaseQuery();
//create collection
IBaseCollection collection = model.GetCollection(query.SchemaTable.TableName);
//fill collection
query.Fill(collection);
//export to ds
TDataSet ds = new TDataSet();
model.Export(ds);
//return
return ds;
}
}
}
دوستان توی یه پروژه به یه نوع کد که تا حالا به اون برخورد نکرده بودم روبرو شدم که تعریف
یه کلاس بود و می گفتن به صورت generic تعریف شده . کدش به صورت زیره . آیا کسی
می تونه در رابطه با این نوع کدنویسی یه توضیحی بده که خیلی کارم گیره ؟
public class BaseBusinessObject<TBaseCollection
, TIdentity
, TBaseQuery
, TBaseObject
, TIBindableDataTable
, TDataSet>
where TBaseCollection : IBaseCollection
where TIdentity : Identity
where TBaseQuery : BaseQuery<TIBindableDataTable>, new()
where TBaseObject : BaseObject
where TIBindableDataTable : IBindableDataTable
where TDataSet : BaseBinadbleDataSet, new()
{
#region methods
public TDataSet SelectAll()
{
//create model
using (MPModel model = new MPModel())
{
using (TransactionContext trans = new TransactionContext(TransactionOption.Disabled))
{
//create Query
TBaseQuery query = new TBaseQuery();
//create collection
IBaseCollection collection = model.GetCollection(query.SchemaTable.TableName);
//fill collection
query.Fill(collection);
//export to ds
TDataSet ds = new TDataSet();
model.Export(ds);
//return
return ds;
}
}
}