你这样子是调用呀。 我要解决。public List <T> GetDataByFilter 报错" T is a 'property' but is used like a 'type'". 这个报错问题呀。
命名冲突public Type T { set; get; } =>public Type T1 { set; get; }
T是属性,当作类型使用 List <TT> GetDataByFilter
public List <Type> GetDataByFilter(string filter, int RecordPerPage, int fromRecord) { if (dbDC == null) dbDC = new DbControlDataContext(); return dbDC.ExecuteQuery <T>("Select * from " + TableName + " where " + filter).Skip(fromRecord).Take(RecordPerPage).ToList(); }
可能是 List <T> 和 Type T冲突了
大家误会了, 我这个类的意思是. 当用用户使用这个类时, 传入一个Type属性. 然后.public List <T> GetDataByFilter(string filter, int RecordPerPage, int fromRecord) 该方法就返回这个Type的List. 例如, 该Type属性传入一个int型. 而GetDataByFilter,就返回list<int>
public class DbLogic<T> { private DbControlDataContext dbDC = new DbControlDataContext();
public string TableName { set; get; } public List <T> GetDataByFilter(string filter, int RecordPerPage, int fromRecord) { if (dbDC == null) dbDC = new DbControlDataContext(); return dbDC.ExecuteQuery <T>("Select * from " + TableName + " where " + filter).Skip(fromRecord).Take(RecordPerPage).ToList(); } }
用泛型方法吧: public List <T> GetDataByFilter<T>(string filter, int RecordPerPage, int fromRecord) { if (dbDC == null) dbDC = new DbControlDataContext(); return dbDC.ExecuteQuery <T>("Select * from " + TableName + " where " + filter).Skip(fromRecord).Take(RecordPerPage).ToList(); }不知道是否符合lz的题意反正泛型应该不是lz这样用的
我要解决。public List <T> GetDataByFilter 报错" T is a 'property' but is used like a 'type'".
这个报错问题呀。
{
set;
get;
} =>public Type T1
{
set;
get;
}
List <TT> GetDataByFilter
public List <Type> GetDataByFilter(string filter, int RecordPerPage, int fromRecord)
{
if (dbDC == null) dbDC = new DbControlDataContext();
return dbDC.ExecuteQuery <T>("Select * from " + TableName + " where " + filter).Skip(fromRecord).Take(RecordPerPage).ToList();
}
和 Type T冲突了
然后.public List <T> GetDataByFilter(string filter, int RecordPerPage, int fromRecord)
该方法就返回这个Type的List.
例如, 该Type属性传入一个int型.
而GetDataByFilter,就返回list<int>
public class DbLogic<T>
{
private DbControlDataContext dbDC = new DbControlDataContext();
public string TableName
{
set;
get;
} public List <T> GetDataByFilter(string filter, int RecordPerPage, int fromRecord)
{
if (dbDC == null) dbDC = new DbControlDataContext();
return dbDC.ExecuteQuery <T>("Select * from " + TableName + " where " + filter).Skip(fromRecord).Take(RecordPerPage).ToList();
}
}
<asp:ObjectDataSource ID="odsData" runat="server" EnablePaging="True" TypeName="DbOperation.DbLogic<DbOperation.CustInfo>"
MaximumRowsParameterName="RecordPerPage"
StartRowIndexParameterName="fromRecord"
SelectCountMethod="FindDataCount"
SelectMethod="GetDataByFilter">
<SelectParameters>
<asp:ControlParameter ControlID="hfFilter" Name="filter" PropertyName="Value" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
ObjectDataSource 去引用时, 却报错.引不到TypeName.
public List <T> GetDataByFilter<T>(string filter, int RecordPerPage, int fromRecord)
{
if (dbDC == null)
dbDC = new DbControlDataContext();
return dbDC.ExecuteQuery <T>("Select * from " + TableName + " where " + filter).Skip(fromRecord).Take(RecordPerPage).ToList();
}不知道是否符合lz的题意反正泛型应该不是lz这样用的