2012-02-22 14 views
7

Algo que nunca he pensado demasiado pero soy curioso y quiero entender el razonamiento real. En ASP.NET usando VB.NET, puede definir el evento de clic del botón cableado (en un control de servidor ASP.NET) de 2 maneras diferentes (para el propósito de esta conversación, cablear manualmente mediante la propiedad del botón no en cuestión) aquí):¿Por qué Privado vs Protegido por cómo se crea un evento Click en un botón en ASP.NET usando VB.NET?

  1. doble clic en el botón en el diseñador que produce un evento en el código detrás con un método protegido.
  2. En el código subyacente, seleccione el botón de la lista de controles y luego seleccione su evento 'Hacer clic'. Esto produce un Private método.

I entiendo la diferencia entre privado y protegido; eso no está en duda aquí. Solo quiero saber el motivo real (sin adivinar ni especular) de por qué, según cómo se autocrea el evento conectado, ¿genera un nivel de acceso diferente en el método?

Gracias!

Respuesta

5

La razón por la que está protegido cuando se declara en el control es que el .aspx se compila en una clase sobre la marcha que hereda del código subyacente, por lo que no vería el método si fuera privado. Cuando el evento se asigna internamente al código subyacente, obviamente se puede acceder al miembro privado.

Ambos son enfoques válidos, solo depende de cómo quiera desollar al gato, y si se crea dinámicamente un control, es posible que tenga que asignar el evento en el código subyacente, por lo que ese mecanismo debe estar presente.

Cuestiones relacionadas