参数重载问题

mirrorspace 2018-05-01 02:42:02
如示.
当1方法和2方法都传一个参数时,会自动判断到1方法上.
怎么让它判断为数组而不是对象呢
1 (sql,model)
2 (sql,val1)
----------------------------------
1 (sql,model)
2 (sql,val1,val2) // 参数多于1个时,是对的

重载1
public object ExecuteScalar<Q>(string sql, Q instance)
{
this.InItCmd<Q>(sql, instance);
return this.SelectScalar();
}
重载2
public int ExecuteNoQuery(string sql, params object[] paravalue)
{
this.InItCmd(sql, paravalue);
return this.NoSelect();
}
...全文
203 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mirrorspace 2018-05-01
  • 打赏
  • 举报
回复
感谢您,分给你了!哈哈
mirrorspace 2018-05-01
  • 打赏
  • 举报
回复
哦.是的.但又不想搞什么泛型约束,好像也搞不成. 最后换一个很无赖的办法 在那个泛型方法里 if(instance is Array) .....执行那个数组方法,换了一个名字
引用 3 楼 xuzuning 的回复:
嗯,是泛型的原因 public object ExecuteScalar<Q>(string sql, Q instance) 这个 Q 表示任何类型 要 public object ExecuteScalar(string sql, Q instance) 这个 Q 表示特定的 Q 类型 换个思路吧
xuzuning 2018-05-01
  • 打赏
  • 举报
回复
嗯,是泛型的原因 public object ExecuteScalar<Q>(string sql, Q instance) 这个 Q 表示任何类型 要 public object ExecuteScalar(string sql, Q instance) 这个 Q 表示特定的 Q 类型 换个思路吧
mirrorspace 2018-05-01
  • 打赏
  • 举报
回复
没错,例如传一个 object[] 它会调用 那个泛型重载 <object[]>(xx,object[])
xuzuning 2018-05-01
  • 打赏
  • 举报
回复
val1 不是 Q 类型,也会到 1?

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧