Вам просто следует избегать написания кода, который выходит за пределы экрана.
Мало того, что это затрудняет отладку, но когда другие люди пытаются прочитать ваш код, это очень сложно и расстраивает.
Вы не должны вкладываться глубоко в какие-либо циклы, но вместо этого вы должны отрицать свои условия и использовать breaks / return / escapes.
Итак, вместо этого:
if (condition) {
//stuff
if (anotherCondition) {
//more stuff
if (yetanotherCondition) {
//starting to get to the edge of the screen soon...
}
}
}
Вместо этого вы должны сделать это:
if (!condition) return;
//do stuff
if (!anotherCondition) return;
//more stuff
if (!yetAnotherCondition) return;
//so much more room to work with!
Более того, такие вещи, как операторы / выражения linq, должны быть разбиты на куски, чтобы их можно было прочитать
а не тогда:
var foo = MyList.select(val => val.isThing() && val.isCorrect && val.hasConditions() && val.things.Any(thing => thing.isCorrect())).orderBy(val => val.property).First();
Что вызывает вашу проблему, вместо этого сделайте это так:
var foo = MyList.select(val =>
val.isThing()
&& val.isCorrect
&& val.hasConditions()
&& val.things.Any(thing =>
thing.isCorrect()
)
)
.OrderBy(val => val.property)
.First();