>Hi Gregory,
>
>>>Hi All,
>>>
>>>I have a method that returns a string if there is no file in a directory. I have stepped through this and watched this line get set to an empty string but when it comes back to the calling line of code, it is null. I am missing something and wonder if it is the way I did the while statement. Any ideas appreciated.
>>>Thanks for the help
>>>Tim
>>>
>>>When the return from PopQueue is set to "" then in my while statement the value of fileName is null. Why would this be?
>>>
>>>while ((fileName = this.PopQueue(path, filter)) != "" && llSuccess)
>>>{
>>> // Do all my stuff here, process each file returned until no more files are returned.
>>>}
>>>}
>>>
>>
>>hi Tim,
>>
>>There's nothing wrong with the while statement. It's just that the debugger upon returning from PopQueue() still shows the old (null) value
>>My guess is that the assignment hasn't executed yet, so filename is still null
>>
>>
>>class test
>>{
>> static void Main(string[] args)
>> {
>> string fileName;
>> bool success = true;
>>
>> while ((fileName = PopQueue()) != "" && success) // here it's still null in the debugger - after execution of PopQueue()
>> {
>> }
>> // here it is ""
>> Console.ReadLine();
>> }
>> static string PopQueue()
>> {
>> return "";
>> }
>>
>>
>>}
>>
>
>I suspect I was jumping to a conclusion too soon as your comments make sense. I had a breakpoint on the While line and after the break each time i was Stepping Into the PopQueue() method. Whatching the directory I see no more files and PopQueue returns an empty string. After coming back to the while loop I was expecting the fileName to be "" but it was still null. Thus I still have the problem I was trying to figure out. Why do I have an endless loop in this while statement. If the PopQueue method returns an empty string I needed it to exit the loop. I had originally thought it was working, but then discovered the breakpoint continues to hit over and over regardless of the empty string. Any ideas?
>Thanks, I think I learned something from you today and I am going to do some experiments to make sure I got it.
>Tim
Dunno, Tim, but why not returning null instead of "" if there are no files. [ the comparaison will be a bit faster ]
Also possible
aFunction()
{
string fileName;
while( PopQueue(out fileName) )
{
}
}
bool PopQueue(out string fileName)
{
}
Gregory