è possibile contrassegnare una dichiarazione di metodo in un'interfaccia come "new" ma ha un senso "tecnico" o è solo un modo per dichiarare esplicitamente che la dichiarazione non può sovrascrivere quella precedente?Qual è lo scopo di nascondere (usando il "nuovo" modificatore) una dichiarazione del metodo di interfaccia?
Ad esempio:
interface II1
{
new void F();
}
interface II2 : II1
{
new void F();
}
è valido (il compilatore C# 4.0 non si lamenta), ma non sembra essere diverso da:
interface II1
{
void F();
}
interface II2 : II1
{
void F();
}
Grazie in anticipo per qualsiasi informazione.
MODIFICA: sai uno scenario in cui nascondere in un'interfaccia sarebbe utile?
EDIT: Secondo questo link: Is method hiding ever a good idea (grazie Scott), lo scenario più comune sembra essere l'emulazione di tipo restituito covariante.
Grazie per la risposta. Quindi non influenzerà il modo in cui le interfacce possono essere utilizzate? Modificherò il post iniziale per chiarire questo. – Pragmateek
@Serious: no, l'unica differenza è l'avviso del compilatore. Consiglierei di usare la parola chiave 'new' per essere chiari. Beh, no, in realtà mi consiglierei di non nascondermi il metodo in generale, dato che trovo confuso, ma se * necessario *, usa la parola chiave 'new'. –
Hai ragione, anch'io non vedo nessun caso d'uso interessante dove dovrebbe essere necessario. – Pragmateek