原来泛型不单只对类的,也可以只使用在方法或函数里面:
public abstract class BaseClass { protected static T MyGetModel<T>(DataTable dt) where T : class,new() { DataRow dr = dt.Rows[0]; T model = new T(); PropertyInfo[] pis = model.GetType().GetProperties(); foreach (PropertyInfo pi in pis) { try { if (dt.Columns.Contains(pi.Name) && dr[pi.Name].ToString() != "") { pi.SetValue(model, dr[pi.Name] ?? "", null); } } catch { } } return model; } }