重载方法,无效参数C#

时间:2012-10-11 07:43:54

标签: c# asp.net

好吧,我正试图从VB转到C#并取得了成功。

我收到以下错误:

  1. 最佳重载方法匹配 '_DataInteraction.stdReturnDataTable(string,ref System.Collections.Generic.List, string)'有一些无效的参数

  2. 必须使用'ref'关键字

  3. 传递参​​数2

    两种引用:myParamList在

    中用 ** 标注

    我在C#中有这段代码

    {
    
        List<SqlParameter> myParamList = new List<SqlParameter>();
        SqlParameter myParam = default(SqlParameter);
    
        myParam = new SqlParameter("@sAMAccountName", SqlDbType.VarChar);
        myParam.Value = ID;
        myParamList.Add(myParam);
    
        **dt = _DI.stdReturnDataTable("cit_ResolveUser", myParamList, "x");**
    
        return dt;
    }
    

    现在是stdReturnDataTable的代码(只是接受参数的顶部部分)

    public static DataSet stdReturnDataset(string procedureName, ref List<SqlParameter> myParameters, string db)
        {
           //code
        }
    

3 个答案:

答案 0 :(得分:5)

正如错误消息所示,您应该使用ref关键字传递参数:

dt = DataInteraction.stdReturnDataTable("cit_ResolveUser", ref myParamList, "ParabisIntranet");

另外,根据你的评论,它是一个静态方法,你不能通过实例变量调用它。相反,您需要使用typename来限定它。

但是我怀疑这里实际上不需要ref关键字,你可以将其从方法签名中删除。

public static DataSet stdReturnDataset(string procedureName, 
                                       List<SqlParameter> myParameters, 
                                       string db)

答案 1 :(得分:1)

您需要在方法调用中指定ref关键字。

dt = _DI.stdReturnDataTable("cit_ResolveUser", ref myParamList, "ParabisIntranet");

答案 2 :(得分:1)

你需要ref keywoard:

dt = _DI.stdReturnDataTable(“cit_ResolveUser”, ref myParamList,“ParabisIntranet”);