EDIT : 나는 완전히 잘못된 방향으로 가고 있었고 정밀 검사를 한 후에 작동하고 있음을 깨달았습니다. 팁 주셔서 감사합니다, 나는 그들을 명심하고 미래를 위해 노력할 것입니다.for 루프에서 각 값을 반환 C#
내 프로그램에서 비정상적인 문제가 발생했습니다. 내가해야 할 일은 두 시간의 차이를 발견하고, 1.5 시간으로 나누고, 시작 시간을 반환하고, 시작 시간의 1.5 시간마다 증가시킵니다. 따라서 시간이 오전 11시 45 분 - 오후 2:45 인 경우 시차는 3 시간, 3/1.5 = 2, 오전 11시 45 분 및 오후 1시 15 분에 반환됩니다. 지금은 한 번 이상 반환을 제외한 모든 것을 할 수 있습니다. 내가 시도한 것에 따라, 그것은 초기 시간 (오전 11시 45 분), 첫 번째 증가 (오후 1시 15 분) 또는 종료 시간 (오후 2시 45 분) 중 하나를 반환합니다. 지금까지 몇 가지 다른 유형의 for 및 do/while 루프를 시도했습니다. 가장 가까운 시간은 시작 시간과 증가 시간을 연결하는 것이었지만 시작 시간과 종료 시간은 3 - 6 시간 범위에서 가능하므로 실용적인 방법은 아닙니다.
최신 것은 내가 시도 :
int i = 0;
do{
i++;
//Start is the starting time, say 11:45 am
start = start.AddMinutes(90);
return start.ToShortTimeString();
} while (i < totalSessions); //totalSessions is the result of hours/1.5
나는 (for 루프도있다) 동적 레이블의 기능 호출 해요 :
z[i] = new Label();
z[i].Location = new Point(PointX, PointZ);
z[i].Name = "sessionTime_" + i;
z[i].Text = getPlayTimes(dt.Rows[i][1].ToString());
tabPage1.Controls.Add(z[i]);
z[i].BringToFront();
PointZ += z[i].Height;
내가 꽤 새로 온 사람을 그래서 나는 어딘가에서 오해 한 것 같아.
함수에서 여러 번 반환 할 수 없습니다. 함수의 반환 형식을'IEnumerable '으로 변경하면'yield return'을 사용할 수 있습니다.하지만 원하는대로 수행 할 수 있는지는 명확하지 않습니다. –
첫 번째 단락은 이해하기에 너무 복잡합니다. –
감사합니다 @ 스탠리, 나는 존재한다는 것을 전혀 몰랐습니다. –