Zum Hauptinhalt springen
ai-slop/csharp-index-loopmanuelle Behebung

Index-for-Schleife.

`for (int i = 0; i < items.Length; i++)`, wobei `i` nur zum Lesen von `items[i]` dient. Ein `foreach` mit zusätzlicher Mechanik.

Beanstandete und saubere Form.

Jedes Beispiel zeigt genau die Codeform, nach der die Regel sucht, und dann die kleinste Version, die die Absicht bewahrt, ohne Risiken zu verstecken oder Rauschen hinzuzufügen.

csharp-index-loop.cs
✗ Beanstandet
for (int i = 0; i < orders.Count; i++)
{
    Ship(orders[i]);
}
Warum das anschlägt

Deterministisches Schleifen-Parsing: beanstandet nullbasierte `for`-Schleifen, die durch `.Length` oder `.Count` begrenzt und um eins hochgezählt werden, wenn der Rumpf den Index nur in `[i]`-Subskripten nutzt.

csharp-index-loop.cs
✓ Sauber
foreach (var order in orders)
{
    Ship(order);
}
Was sich geändert hat

Nutze `foreach (var item in items)`. Behalte die Indexschleife, wenn die Position selbst wichtig ist.

Agenten greifen standardmäßig zur Indexschleife, wie sie in C-artigen Sprachen üblich ist, auch wenn gar kein Index gebraucht wird.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/csharp-index-loop

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministisches Schleifen-Parsing: beanstandet nullbasierte `for`-Schleifen, die durch `.Length` oder `.Count` begrenzt und um eins hochgezählt werden, wenn der Rumpf den Index nur in `[i]`-Subskripten nutzt.

Legitimer Code, der NICHT beanstandet wird

Schleifen, die den Index für anderes nutzen (Arithmetik, Ausgabe, Weitergabe), Schleifen mit anderen Grenzen oder Schrittweiten sowie `foreach`-Schleifen werden nicht beanstandet.

Belege

Teil des C#-Regelsatzes von aislop. Vollwertige C#-Unterstützung, einschließlich C#-spezifischer AI-Slop-Regeln, kam mit aislop v0.14.1.