Ce produit n'est pas pris en charge par le site Datadog que vous avez sélectionné. ().
Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

Metadata

ID: csharp-best-practices/optional-ref-out

Language: C#

Severity: Info

Category: Best Practices

Description

The modifier Optional should not be used on ref or out parameters because it’s semantically incorrect:

  • an out parameter is used as a value to return from the function and, therefore, is not optional
  • a ref parameter is passed back to the caller

Non-Compliant Code Examples

class MyClass {

    public static void routine([Optional] out i)
    {
    }
}
class MyClass {
    public static void routine([Optional] ref int i)
    {
    }

}

Compliant Code Examples

class MyClass {
    // Safe: not using Optional with ref or out parameters
    public static void routine(ref int i)
    {
    }

    public static void anotherRoutine([Optional] int i)
    {
    }
}
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains