错误:out参数必须控制之前分配离开当前方法(Error : The Out Parameter m

2019-06-26 15:59发布

虽然发回的参数得到这个错误

错误:out参数必须控制之前分配离开当前方法

码是

 public void GetPapers(string web, out int Id1, out int Id2)
    {
        SqlConnection conn = new SqlConnection(ConnectionString());
        conn.Open();
        SqlCommand cmd = new SqlCommand("GetPapers", conn);
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.Add(new SqlParameter("@URL", String(web)));

        SqlDataReader rdr = cmd.ExecuteReader();

        if (rdr.Read())
        {
            Id1 = (int)rdr["ID1"];
            Id2 = (int)rdr["ID2"];
        }

        rdr.Close();
    }

称其为

GetPapers(web, out Id1, out Id2);

与此相关的问题

相关问题

Answer 1:

您正在分配Id1Id2 if语句内,编译器无法确定它是否会被分配在运行时的值,从而错误。

你可以在if语句之前给它们一些默认值。 就像是。

Id1 = 0;
Id2 = 0;

if (rdr.Read())
{
    Id1 = (int)rdr["ID1"];
    Id2 = (int)rdr["ID2"];
}

或者指定一些默认值, else你的病情的一部分。

一个out类型参数必须被分配某个值,则控制离开功能之前。 在你的情况,编译器无法确定您是否变量将被分配与否,因为它是被内部分配if语句。

请参阅: 5.3明确赋值

在函数的部件的可执行代码的给定位置,一个变量表示可以明确赋值如果编译器可以证明通过静态流分析,该变量被自动初始化或已经至少一个分配的目标。



Answer 2:

您需要初始化这些变量;

它必须持有从Getpapers返回之前的一些值()方法



文章来源: Error : The Out Parameter must be assigned before control leaves the current method