significado - que es un parametro en c#
¿Cuál es el equivalente de una palabra clave ''amigo'' en C Sharp? (5)
¿Cuál es el equivalente de una palabra clave ''amigo'' en C Sharp?
¿Cómo uso la palabra clave ''interna''?
He leído que la palabra clave ''interna'' es un reemplazo para ''amigo'' en C #.
Estoy usando un archivo DLL en mi proyecto de C # para el que tengo el código fuente y, sin embargo, no deseo modificar el código existente. Heredé la clase y puedo usar mi clase heredada de la forma que quiera. El problema es que la mayoría del código en la clase padre tiene métodos protegidos. ¿El uso de un amigo de alguna manera hará posible acceder o llamar a estos métodos protegidos?
Puede usar el modificador de acceso de palabra clave
internal
para declarar que un tipo o tipo de miembro es accesible para codificar solo en el mismo ensamblado.Puede utilizar la clase
InternalsVisibleToAttribute
definida enSystem.Rutime.CompilerServices
para declarar un tipo como accesible para codificar en el mismo ensamblaje o solo en un ensamblaje especificado.
Usas el primero al usar cualquier otro modificador de acceso como private
. Esto es:
internal class MyClass {
...
}
Usas el segundo de la siguiente manera:
[assembly:InternalsVisibleTo("MyFriendAssembly", PublicKey="...")]
internal class MyVisibleClass {
...
}
Ambas pueden considerarse, con razón, el equivalente de un friend
en C #.
Los métodos que están protected
ya están disponibles para las clases derivadas.
1) Internal es el valor equivalente de C # de la palabra clave ''friend'' de VB.NET, como ya habrá adivinado (a diferencia de un reemplazo)
2) el uso es el siguiente
internal void Function() {}
internal Class Classname() {}
internal int myInt;
internal int MyProperty { get; set; }
3) Básicamente, es un modificador de acceso que estipula que la accesibilidad de la clase / función / vairiable / propiedad marcada como interna es como si fuera pública para la Asamblea en la que está compilada, y privada para cualquier otra asamblea
Internal es el equivalente de un amigo. Un método protegido solo está disponible dentro de la misma clase o de un heredero. Si intenta exponer métodos protegidos de un heredero, puede envolverlos en métodos públicos.
Su subclase podrá acceder a los miembros protegidos de la clase que hereda.
¿Estás buscando dar acceso a estos miembros protegidos a otra clase?
No, "interno" no es lo mismo que "amigo" (al menos el "amigo" de C ++)
friend especifica que esta clase solo es accesible por ONE, clase particular.
interno especifica que esta clase es accesible por CUALQUIER clase en el ensamblado.