最近在调代码,发现一个很诡异的问题,简单复原一下
创建4.0控制台项目
以下代码
1 class Program 2 { 3 4 static void Main(string[] args) 5 { 6 var item = new { Id = "a7b97947-2ddb-4454-8bad-c0a95e0431aa" }; 7 var client = new SqlClient(); 8 var data = client.QueryByPage("aaaa", 1, 3, item); 9 10 } 11 } 12 public class SqlClient 13 { 14 public virtual object QueryByPage(string sql, int page, int count, object item) 15 { 16 return null; 17 } 18 }
在第8行打断点,调试时报错
那么继续,将QueryByPage方法改为泛型
data的返回值都错了
那么这个问题让我们百思不得其解
VS2013U3和U4都有此问题,那么在这种条件下做了一下测试
1、先改为4.5项目,正常
2、将virtual关键字去除,正常
3、将object类型的参数去除,正常
4、将object前面的参数减少为2个,正常
最后,在没有任何变化的情况下
1、使用VS2010调试,正常
2、程序直接运行,正常
园子里的各位,有谁能给个解释吗?