2010-05-21 10 views
24

Si tengo un método que no especifica su nivel de accesibilidad, ¿será privado por defecto?en C# son métodos privados por defecto?

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

¿El método anterior es privado?

+0

@Cloud - pero no obtiene ningún punto de reputación de esa manera;) – MPritchard

+0

@Cloud - Quería una respuesta más científica. Cuando VS genera automáticamente un trozo de método, crea el método con accesibilidad privada, no sin ninguna palabra clave de accesibilidad. –

+1

lo hace de acuerdo con la misma regla que explica Julien Lebosquain en su respuesta. Puede verlo como una especie de enfoque de generación mejor que la de arrepentirse. Es mejor tener menos accesibilidad y un error de compilación (en el futuro), que demasiada accesibilidad que no conoce. :) Además, probablemente también haya motivos relacionados con el rendimiento para este comportamiento. – pyrocumulus

Respuesta

44

Lo es. La regla general si no define ningún modificador es "el modificador más restringido que se puede aplicar aquí se usa", tan privado para métodos, interno para clases de nivel superior, etc.

+4

Esa es una gran regla. Podría acostumbrarme a esta cosa C# ... – kdbanman

3

Para un método dentro de una clase , el predeterminado es privado. Sí varía en función del alcance de donde se declaran las cosas, aquí hay un MSDN link con más detalles

Cuestiones relacionadas