一锅小青蛙
2017-11-28 02:00
采纳率: 70.4%
浏览 1.5k

C# 无法从'out int' 转换为'out System.Int32'

方法中定义的是

 public Dataset GetSet(...,out int count){...}

在调用的时候

int num=0;
DataSet set = GetSet(...,out num);

报了两个错误:
1. 无法从'out int' 转换为'out System.Int32'
2. 与"GetSet(...,out System.Int32)" 最匹配的重载方法具有一些无效参数

但是仍然能运行,求问这是怎么回事

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • mango_love 2017-11-29 02:10
    已采纳

    这个情况我也碰到过,就是vs的问题。。。简单的办法就是定义的时候带上命名空间。
    System.Int32 num=0;
    DataSet set = GetSet(...,out num);

    已采纳该答案
    打赏 评论
  • huhu_135 2017-11-28 03:39

    从你的第2个错误推断可能是参数没写对,有VS异常截图吗

    打赏 评论
  • 我想看看也想静静 2017-11-28 05:33

    out是传出参数,与ref有点像,但偏重于输出,而且不用初始化,通过执行使用out参数的方法逻辑,out后面的数接受并返回这个值。
    你参考一下下面的代码应该可以解决你的问题。
    public DataSet getData(out int count)
    {
    dataset ds=bll.getdata(10,20);
    int rcount=bll.GetCount();//比方说这个是取总记录数的
    count=rcount;
    return ds;
    }

    //显示的时候

    public void showdata()
    {
    int count=0;

    gridview1.datasource=getData(out count); 
    gridview1.databind(); 
    

    label1.text="共有"+count.tostring()+"条记录";
    }

    打赏 评论

相关推荐 更多相似问题