错误:必须在控制离开当前方法之前分配Out参数
发回参数时会收到此错误
错误:必须在控制离开当前方法之前分配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);
与此问题相关
相关问题
您在if语句中分配Id1
和Id2
并且编译器无法确定是否在运行时为其分配值,从而导致错误。
您可以在if语句之前为它们分配一些默认值。 就像是。
Id1 = 0; Id2 = 0; if (rdr.Read()) { Id1 = (int)rdr["ID1"]; Id2 = (int)rdr["ID2"]; }
或者在条件的else
部分指定一些默认值。
在控件离开函数之前,必须为out
类型参数指定一些值。 在您的情况下,编译器无法确定是否将分配您的变量,因为它是在if
语句中分配的。
请参阅: 5.3明确的分配
在函数成员的可执行代码中的给定位置处, 如果编译器可以通过静态流分析certificate该变量已被自动初始化或已成为至少一个赋值的目标,则称该变量是明确赋值的。
您需要初始化这些变量;
它必须在从Getpapers()方法返回之前保留一些值