هنگام کد نویسی در C# 2005 به مشکلی در میدان دید متغیرها برخوردم. موقعی که یک متغییر بطور خاص یک متغییر Refrence Type که از بد حادثه Abstract هم هست، قراره مثلا داخل بلاک Try توسط یک متد از شیئ دیگه ای New بشه.
اگر همون داخل try تعریفش کنم بیرون try شناخته شده نیست، اگر بیرون try تعریف کنم و داخل try توسط متد دیگری new کنم ایراد میگیره که:
!Use of unassigned local variable X
راه حل این مشکل چیه؟
این هم نمونه کدی این مشکل رو باهاش دارم:
public static DataTable GetData(string Command)
{
OleDbDataReader OleDbdr;
DataTable outputTable;
string ConStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Web.Hosting.HostingEnvironment.MapPath("~/App_Data/trfc.mdb") + ";Jet OLEDB:System Database=system.mdw;User ID=admin;Password=;";
OleDbConnection Conn = new OleDbConnection(ConStr);
OleDbCommand Com = new OleDbCommand(Command, Conn);
try
{
Conn.Open();
OleDbdr = Com.ExecuteReader();
outputTable = GetTable(OleDbdr); // Returns DataTable
}
catch (Exception e)
{
}
finally
{
Conn.Close();
return outputTable;
}
}