Do not use Optional on ref or out. parameters

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)
    {
    }

}
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Analysis