c# – 我可以使用通用约束来启用参数化构造函数吗?
发布时间:2020-12-15 20:05:50 所属栏目:百科 来源:网络整理
导读:我有这样的功能: public ListT SelectAllT() where T : DatabaSEObject,new(){ ListT retVal = new ListT(); String command = "Select * from " + GetType().Name; MySqlCommand cmd = DatabaseRunner.GetCommand(command); MySqlDataReader reader = cmd.
我有这样的功能:
public List<T> SelectAll<T>() where T : DatabaSEObject,new() { List<T> retVal = new List<T>(); String command = "Select * from " + GetType().Name; MySqlCommand cmd = DatabaseRunner.GetCommand(command); MySqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { T newObj = new T(reader); } return retVal; } 您可以看到当我尝试创建新的T对象时,我将MySqlDataReader对象传递给构造函数.如何修改方法签名以允许此操作? 解决方法
你不能. C#仅支持new()约束(您已经使用它),用于将类型参数约束为具有无参数构造函数的类型.在此上下文中不支持具有参数的构造函数.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |