A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mzh901024 中级黑马   /  2013-8-10 17:53  /  673 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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”
是为啥???

4 个回复

正序浏览
第一种方法:用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 就不报错了



回复 使用道具 举报
你把out换成ref试试
回复 使用道具 举报
本帖最后由 心动行动 于 2013-8-10 21:56 编辑

使用out传出参数的时候必须在方法内部对out后面的参数进行类型声明和赋值,你这里面没有你这种情况使用ref应该是可以的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马