我創建簡單的類,它可以使用它來創建循環:中斷循環
public class SimpleLoop
{
public int I { get; set; }
public Predicate<int> Condition { get; set; }
public int Increment { get; set; }
public Action<int> Action { get; set; }
public SimpleLoop(int i, Predicate<int> condition, int increment, Action<int> action)
{
I = i;
Condition = condition;
Increment = increment;
Action = action;
Invoke();
}
private void Invoke()
{
for (int i = I; Condition.Invoke(i); i += Increment)
{
Action.Invoke(i);
}
}
}
然後,我可以把這個循環是這樣的:
new SimpleLoop(0, i => i <= 12, 1, delegate (int i)
{
Console.WriteLine(i);
});
一切工作正常,但我不不知道如何跳出循環,因爲我無法在void
內使用關鍵字break
和continue
。我發現我可以使用return
獲得與continue
相同的效果,但我無法擺脫循環。
我還在這個類的基礎上創建了其他「循環類」。他們看起來非常相似,但我使用的是定製代表而不是Action
我認爲這只是與代碼玩...因爲它在生產代碼中幾乎沒用:\ –
您可以讓被調用的函數返回一個布爾值,說明是否繼續...... – Nyerguds