Can you post a compiling snippet, because I cannot reproduce the behaviour you see.
The following compiles just fine: using System; using System.Data; public class Test { public static void Main(string[] args) { } public static Test Method() { Test t; IDbConnection conn = new System.Data.SqlClient.SqlConnection(); try { conn.Open(); t = new Test(); } finally { conn.Dispose(); } return t; } } Regards, Jeroen > -----Original Message----- > From: dotnet discussion [mailto:[EMAIL PROTECTED]] > On Behalf Of Curtis Koppang > Sent: Friday, April 19, 2002 17:10 > To: [EMAIL PROTECTED] > Subject: Re: [DOTNET] Use of unassigned local variable > > > I guess it's too much to ask for the compiler to figure this out. > > Here is what I mean. If I get an exception on a line in the > try block, the > only code I am executing is the code in the finally block. I > am not going > to execute the return, so why do I care if it has a valid > value or not. > > Later, > curt > > ----- Original Message ----- > From: "Jim Arnold" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Friday, April 19, 2002 10:32 AM > Subject: Re: [DOTNET] Use of unassigned local variable > > > > You can't initialise variables inside a try..catch block > and then use them > > outside of that block. Simply because not everything > within try{} or > > catch{} is guaranteed to be executed, so when you reach the > other side of > it > > (your 'return author' line), that variable might not have > been assigned. > > Initialise it before the try{} block and you should be fine. > > > > Jim > > > > > -----Original Message----- > > > From: Curtis Koppang [mailto:[EMAIL PROTECTED]] > > > Sent: 19 April 2002 15:01 > > > To: [EMAIL PROTECTED] > > > Subject: [DOTNET] Use of unassigned local variable > > > > > > > > > I get the "use of unassigned local variable 'author'" error on the > > > following line of code... > > > > > > try > > > { > > > cn.Open(); > > > dr = cmd.ExecuteReader(CommandBehavior.SequentialAccess); > > > author = new Author(dr); > > > } > > > finally > > > { > > > cn.Close(); > > > } > > > > > > return author; > > > > > > But not on the following code. > > > > > > cn.Open(); > > > dr = cmd.ExecuteReader(CommandBehavior.SequentialAccess); > > > author = new Author(dr); > > > cn.Close(); > > > > > > return author; > > > > > > Why would the two be considered different? > > > > > > Tx, > > > curt > > > > > > You can read messages from the DOTNET archive, unsubscribe > > > from DOTNET, or > > > subscribe to other DevelopMentor lists at > http://discuss.develop.com. > > > > > > > You can read messages > from the DOTNET archive, unsubscribe from DOTNET, or > > subscribe to other DevelopMentor lists at > http://discuss.develop.com. > > > > > > You can read messages from > the DOTNET archive, unsubscribe from DOTNET, or > subscribe to other DevelopMentor lists at http://discuss.develop.com. > You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.