문제

Doing a few c# loops and if statements. Getting a highlight for unreachable code on a for loop. I can't quite figure this 1 out.

        public bool checkTime()
    {

        // Read values back from Json file
        var serializedList = File.ReadAllText(@filePathTimes);

        // getting a list of LockTime objects
        List<LockTime> deserializedList = (List<LockTime>)JsonConvert.DeserializeObject(serializedList, typeof(List<LockTime>));

        if (deserializedList.Count != 0)
        {

                // Grab whatever data you want from this list to store somewhere, such as a list of all Start and End integers.
                List<DateTime> intStartList = deserializedList.Select(entry => entry.Start).ToList();
                List<DateTime> intEndList = deserializedList.Select(entry => entry.End).ToList();

                //Then I do a foreach loop to go through every value in the start list and add the same located value to my listOfTimes (the list of LockTime objects with start and end)
                for (int x = 0; x < intStartList.Count; x++)
                {
                    TimeSpan start = new TimeSpan(intStartList[x].Hour, intStartList[x].Minute, intStartList[x].Second);
                    TimeSpan end = new TimeSpan(intEndList[x].Hour, intEndList[x].Minute, intEndList[x].Second);
                    TimeSpan now = DateTime.Now.TimeOfDay;
                    LockTime theTime = new LockTime(intStartList[x], intEndList[x]);
                    _lockTimes.Add(theTime);
                    if((now > start) && (now < end))
                    {
                        return true;
                    }

                        return false;

                }
        }
        return false;
    }

The highlight for unreachable code is coming up on the x++ on the for loop. Any ideas why this is?

도움이 되었습니까?

해결책

That's because regardless of what happens, the code inside the loop will execute either return true; or return false;.

The loop won't loop.

다른 팁

The reason is because you are calling:

return true

or

return false

In the loop so it will ALWAYS exit after going round once.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top