Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Flag optional arguments on methods that differ from their interface declarations

Ouverte
#102 5 commentaires 0 réactions 4 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@GrantErickson y travaille déjà.

Depuis le 10/4/2020.

Évaluation

Cette issue n'a pas encore été évaluée.

Description

documentation

Consider the following case:

public class Foo : IFoo
{
    public void Bar(int value = 2) => Console.WriteLine(value);
}
public interface IFoo
{
    public void Bar(int value = 1);
}

public static void Main(string[] args)
{
    IFoo foo1 = new Foo();
    foo1.Bar();
    var foo2 = new Foo();
    foo2.Bar();
}

Output:

2
1

I would propose that the coding standard be

DO NOT: declare optional arguments on class methods that are implementing an interface.

Rational:

  • If these value are not in sync it will cause behavior as shown above.
  • It is possible to declare a constant and share it in both places. However, if you have an interface for accessing the class, why is there code bypassing it? If you want to invoke the method using the default value, simply go through the interface.
Langage dominant
C#
Étoiles
12
Forks
16
Merge moyen
4 min
PR mergées (30 j)
12

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de IntelliTect/CodingGuidelines

Toutes les issues de IntelliTect/CodingGuidelines

Issues similaires

Plus d'issues C#

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.