Un metodo sovraccarica un altro o entrambi i metodi sono "sovraccaricati"

13

Se creo questo metodo

public void foo()

E poi creo una versione sovraccaricata come questa

public void foo( string bar )

Diciamo che le seconde funzioni sovraccaricano il primo, o entrambi i metodi sono ugualmente "sovraccaricati"?

Questo implicherebbe (penso), che ci sia una funzione di tipo base, che viene sovraccaricata, da un'altra funzione (un po 'come l'ereditarietà, ma non proprio).

Supponendo che un metodo possa "sovraccaricare un altro", implicherebbe anche termini come "overloader" e "overloadie", se questa è una parola. Ma non sembra affatto giusto, soprattutto perché puoi avere diversi sovraccarichi.

Ho avuto questa domanda quando ho voluto scrivere il processo di creazione di un metodo sovraccarico e volevo il modo più corretto di scriverlo.

Esempi:

  • Sto sovraccaricando foo
  • Sto sovraccaricando foo con foo( string bar )
  • Sto creando un metodo sovraccarico
  • Sto facendo sovraccaricare foo

Quindi sì, questo tipo mi ha fatto pensare, non sono sicuro di cosa farne. Ci sono centinaia, se non migliaia, di descrizioni del sovraccarico di funzioni online, ma a prima vista non sono riuscito a trovare nessuna risposta a questo.

    
posta Willem D'Haeseleer 19.04.2012 - 18:24
fonte

3 risposte

29

Quando parli di sovraccarichi, il nome della funzione è sovraccarico, non la funzione stessa. Le funzioni che sovraccaricano il nome sono "overload" e sovraccaricano il nome, ma non l'un l'altro. Nel tuo esempio, "public void foo()" e "public void foo( string bar )" sovraccaricano entrambi il nome "pippo". Pertanto, non puoi parlare in termini di sovraccarico e sovraccarico di una delle funzioni, perché non hanno una relazione diretta.

Nei tuoi esempi, puoi dire che stai sovraccaricando "foo" (il nome) con "foo (barra delle stringhe)" (la funzione), ma non puoi dire di creare un metodo sovraccarico, perché i metodi non sono mai sovraccaricati . Puoi dire che crei un metodo di sovraccarico. Formulare "far finta di sovraccaricare" è solo un modo peggiore di dire "overload foo".

    
risposta data 19.04.2012 - 18:52
fonte
15

Direi semplicemente che foo è sovraccarico. Non c'è sicuramente una relazione master / slave o genitore / figlio qui.

    
risposta data 19.04.2012 - 18:28
fonte
3

Penso che un buon modo per esprimerlo sia concentrarsi sul risultato finale, non sulle modifiche apportate alla classe nel tempo. Quindi, invece di dire "Ho sovraccaricato 'foo' con 'foo (altri parametri)'," dici "foo è una funzione sovraccaricata, con" foo () "e" foo (altri parametri). ""

    
risposta data 19.04.2012 - 18:33
fonte

Leggi altre domande sui tag