使用未指派变量

dl_newpage 2012-09-21 09:47:52
public static DataTable ExecuteSelectCommand(DbCommand dbcommand)
{
DataTable table;
try
{
//打开数据连接
dbcommand.Connection.Open();
DbDataReader reader = dbcommand.ExecuteReader();
table = new DataTable();
table.Load(reader);
reader.Close();
}
catch (Exception ex)
{

}
finally
{
dbcommand.Connection.Close();
}
return table;
}

以上代码为什么在返回值时提示:use unassigned local variable 'table'
table 不是已经定义过了吗
...全文
145 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
devmiao 2012-09-22
  • 打赏
  • 举报
回复
因为try catch中的代码可能不会被运行。
类似的,如果你这么写,也会报这个错:
void foo(bool b)
{
int i;
if (b) i = 1; // error, 因为if可能不执行
}
stonespace 2012-09-22
  • 打赏
  • 举报
回复
并不是在所有分支table都被赋值,比如没有执行到table = new DataTable()就抛出异常的情况,table就没有被赋值,

这个最好把table =new DataTable()放到try之前比较安全,或者一开始设置为null,
o光o 2012-09-21
  • 打赏
  • 举报
回复
DataTable table=null;
改为这样,table有可能没被附值就return

109,882

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧