2010-05-21 7 views
24

Se ho un metodo che non specifica il suo livello di accessibilità sarà privato di default?in C# sono metodi privati ​​per impostazione predefinita?

void Item_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) 
{ 
    throw new NotImplementedException(); 
}   

Il metodo sopra è privato?

+0

@Cloud - ma non si ottengono punti reputazione in questo modo;) – MPritchard

+0

@Cloud - Volevo una risposta più scientifica. Quando VS genera automaticamente un metodo di stub, crea il metodo con accessibilità privata, non senza alcuna parola chiave di accessibilità. –

+1

lo fa secondo la stessa regola che Julien Lebosquain spiega nella sua risposta. Puoi vederlo come una sorta di approccio alla generazione "meglio prevenire che curare". È meglio avere meno accessibilità e un errore di compilazione (in futuro), che troppa accessibilità che non si conosce. :) Inoltre, ci sono probabilmente anche ragioni legate alle prestazioni per questo comportamento. – pyrocumulus

risposta

44

Lo è. La regola generale se non si definisce alcun modificatore è "il modificatore più ristretto che può essere applicato qui", in modo privato per i metodi, interno per le classi di livello superiore, ecc.

+4

Questa è una grande regola. Potrei abituarmi a questa cosa di C# ... – kdbanman

3

Per un metodo all'interno di una classe , l'impostazione predefinita è privata. Varia in base all'ambito in cui vengono dichiarate le cose, ecco uno MSDN link con più specifiche

Problemi correlati