Zum Hauptinhalt springen
ai-slop/csharp-console-leftovermanuelle Behebung

Console-Überbleibsel in C#.

`Console.Write`/`WriteLine` in Bibliothekscode oder `Debug`/`Trace`-Schreibaufrufe in ausgeliefertem Code. Meist vom Debuggen übrig gebliebene Ausgabe.

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-console-leftover.cs
✗ Beanstandet
public decimal CalculateTax(Order order)
{
    Console.WriteLine($"Calculating tax for {order.Id}");
    var rate = _rates.For(order.Region);
    Debug.WriteLine(rate);
    return order.Subtotal * rate;
}
Warum das anschlägt

Deterministischer Zeilenabgleich auf maskiertem Quelltext: beanstandet `Write`-, `WriteLine`-, `WriteIf`- und `WriteLineIf`-Aufrufe auf `Debug.` und `Trace.` sowie `Console.Write`/`WriteLine` in Projekten, die keine ausführbare Datei bauen.

csharp-console-leftover.cs
✓ Sauber
public decimal CalculateTax(Order order)
{
    var rate = _rates.For(order.Region);
    _logger.LogDebug("Tax rate {Rate} for order {OrderId}", rate, order.Id);
    return order.Subtotal * rate;
}
Was sich geändert hat

Entferne den Schreibaufruf oder leite ihn mit passendem Level über den `ILogger` des Projekts.

Agenten prüfen Verhalten, indem sie auf die Konsole schreiben, und lassen den Aufruf dann stehen. In einer Bibliothek landet er im stdout des Hosts, ohne Level, ohne Struktur und ohne Möglichkeit, ihn abzuschalten.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/csharp-console-leftover

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministischer Zeilenabgleich auf maskiertem Quelltext: beanstandet `Write`-, `WriteLine`-, `WriteIf`- und `WriteLineIf`-Aufrufe auf `Debug.` und `Trace.` sowie `Console.Write`/`WriteLine` in Projekten, die keine ausführbare Datei bauen.

Legitimer Code, der NICHT beanstandet wird

`Console.Error`, Konsolenausgabe in ausführbaren Projekten (OutputType Exe oder WinExe oder die SDKs Web, Worker oder BlazorWebAssembly), mit `// aislop-worker` markierte Dateien sowie Skripte, Beispiele, Doku und andere Nicht-Produktionspfade 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.