黑马程序员技术交流社区

标题: List<String>问题 [打印本页]

作者: mzh901024    时间: 2013-8-10 17:53
标题: List<String>问题
  1.    List<String> comnameList = new List<string>();
  2.         List<String> comipList = new List<string>();
  3.         List<String> comcomList = new List<string>();

  4. public void GetList(out List<string>comnameList, out  List<string>comipList, out List<string>comcomList)
  5.         {
  6.            con.ConnectionString = @"User id=sa;pwd=.;database=db; ;server=(local)";
  7.             con.Open();
  8.             cmd.Connection = con;
  9.             cmd.CommandText = "select comname, ip, community from comindex";
  10.             SqlDataReader reader = cmd.ExecuteReader();
  11.             while (reader.Read())
  12.             {
  13.                 comnameList.Add(String.Format("{0}", reader[0]));
  14.                 comipList.Add(String.Format("{0}", reader[1]));
  15.                 comcomList.Add(String.Format("{0}", reader[2]));
  16.             }
  17.             reader.Close();
  18.             con.Close();
  19.         }
复制代码
出现错误:使用了未赋值的 out 参数“comcomList”
          使用了未赋值的 out 参数“comipList”
          使用了未赋值的 out 参数“comcomList”
是为啥???
作者: 心动行动    时间: 2013-8-10 21:55
本帖最后由 心动行动 于 2013-8-10 21:56 编辑

使用out传出参数的时候必须在方法内部对out后面的参数进行类型声明和赋值,你这里面没有你这种情况使用ref应该是可以的

作者: 心动行动    时间: 2013-8-10 21:56
你把out换成ref试试
作者: 彭家贰小姐    时间: 2013-8-10 22:14
第一种方法:用out
但GetList方法刚开始这样写:
comnameList = new List<string>();
comipList = new List<string>();
comcomList = new List<string>();
  1. private void winTest_Loaded(object sender, RoutedEventArgs e)
  2. {
  3. List<String> comnameList = new List<string>();
  4. List<String> comipList = new List<string>();
  5. List<String> comcomList = new List<string>();
  6. GetList(out comnameList, out comipList, out comcomList);
  7. }

  8. public void GetList(out List<string> comnameList, out List<string> comipList, out List<string> comcomList)
  9. {
  10. comnameList = new List<string>();
  11. comipList = new List<string>();
  12. comcomList = new List<string>();
  13. string connStr = ConfigurationManager.ConnectionStrings["dbConnStr"].ConnectionString;
  14. using (SqlConnection conn = new SqlConnection(connStr))
  15. {
  16. conn.Open();
  17. using (SqlCommand cmd = conn.CreateCommand())
  18. {
  19. cmd.CommandText = "SELECT * FROM dbo.T_AreaFull WHERE AreaPid = 0";
  20. SqlDataReader reader = cmd.ExecuteReader();
  21. while (reader.Read())
  22. {
  23. comnameList.Add(String.Format("{0}", reader[0]));
  24. comipList.Add(String.Format("{0}", reader[1]));
  25. comcomList.Add(String.Format("{0}", reader[2]));
  26. }
  27. }
  28. }
  29. }
复制代码
第二种方法:像楼上说的改用ref 就不报错了








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2