Flag optional arguments on methods that differ from their interface declarations
@GrantErickson ci sta già lavorando.
Dal 10/4/2020.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
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.
- Lingua principale
- C#
- Stelle
- 12
- Fork
- 16
- Merge medio
- 2m
- PR unite (30g)
- 10
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di IntelliTect/CodingGuidelines
-
Overriding ToString() Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
IntelliTect/CodingGuidelines#290 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
IntelliTect/CodingGuidelines#253 ·
-
.editorconfig C# coding guidelines proposal
IntelliTect/CodingGuidelines#249 · 6 commenti · 1 reazione · 2 assegnatari ·
-
INTL0001 when using records Apertaanalyzer C# coding guidelines proposal
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
IntelliTect/CodingGuidelines#231 ·
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
IntelliTect/CodingGuidelines#230 ·
Tutte le issue di IntelliTect/CodingGuidelines
Issue simili
-
untriaged
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
dotnet/dotnet-api-docs#13095 ·
-
area-deployment area-integrations triage:bot-seen
Difficoltà 2/5 Mezza giornata Idoneità per principianti 86/100
-
type/automation type/tech-debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
newrelic/newrelic-dotnet-agent#3850 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
LuckyPennySoftware/AutoMapper#4660 ·