¿Existen clases privadas en C#, excepto en las clases internas?Concepto de clase privada en C#
Respuesta
No, no lo hay. No puede tener una clase privada a menos que esté anidada.
¿En qué otro escenario entonces para una clase innter te gustaría tener una clase 'privada'?
Puede usar el modificador internal
para crear una clase que solo sea visible en el ensamblaje actual.
// the class below is only visible inside the assembly in where it was declared
internal class MyClass
{
}
Nº ¿Cuál sería el alcance de una clase de este tipo?
Simplemente NO. Nada menos que está en una clase anidada
clases y las estructuras que no están anidadas dentro de otras clases o estructuras pueden ser pública o interna. Un tipo declarado como público es accesible por cualquier otro tipo. Solo se puede acceder a un tipo declarado como interno por tipos dentro del mismo ensamblaje. Las clases y las estructuras se declaran como interna de manera predeterminada a menos que la palabra clave public se agregue a la definición de la clase.
Las definiciones de clase o estructura pueden agregar la palabra clave interna para hacer que su nivel de acceso sea explícito. Los modificadores de acceso no afectan a la clase o estructura en sí, siempre tiene acceso a sí mismo y a todos sus miembros.
Los miembros de la estructura, incluidas las clases y las estructuras anidadas, se pueden declarar como públicas, internas o privadas. Los miembros de la clase, incluidas las clases y estructuras anidadas, pueden ser públicos, protegidos internos, protegidos, internos o privados. El nivel de acceso para los miembros de la clase y los miembros de la estructura, incluidas las clases y estructuras anidadas, es privado por defecto. Los tipos anidados privados no son accesibles desde fuera del tipo contenedor.
Las clases derivadas no pueden tener mayor accesibilidad que sus tipos de base. En otras palabras, no puede tener una clase pública B que se deriva de una clase interna A. Si esto se permitiera, tendría el efecto de hacer A pública, porque todos los miembros protegidos o internos de A son accesibles desde la clase derivada.
Puede habilitar otros ensamblajes específicos para acceder a sus tipos internos mediante el InternalsVisibleToAttribute.
he encontrado la información en C# Default access modifier of Main() method ser también útil en relación con esta cuestión de haber programado en otros idiomas. En el siguiente ejemplo, MyClass sería interno y static void main sería privado. Como Peter Talyor insinuó que otros idiomas difieren, entonces creo que vale la pena mostrarlo explícitamente. Visual Studio, según el proyecto, crea un archivo cs de programa inicial similar al siguiente; la vista de clase en la pestaña Vista en Visual Studio, como se menciona en el artículo de Flujo de pila vinculado, puede ser útil para verificar los modificadores de acceso.
namespace MyNamespace{
class MyClass{
static void Main(string[] args){
}
}
}
Podemos declarar una clase como privada dentro de otra clase.amablemente encuentre el siguiente código sobre cómo lograr lo mismo:
public class Class1
{
temp _temp ;
public Class1()
{
_temp = new temp();
}
public void SetTempClass(string p_str, int p_Int)
{
_temp.setVar(p_str, p_Int);
}
public string GetTempClassStr()
{
return _temp.GetStr();
}
public int GetTempClassInt()
{
return _temp.GetInt();
}
private class temp
{
string str;
int i;
public void setVar(string p_str, int p_int)
{
str = p_str;
i = p_int;
}
public string GetStr()
{
return str;
}
public int GetInt()
{
return i;
}
}
}
- 1. C# clase base privada (oculta)
- 2. Concepto de horquilla en C#
- 3. ¿Herencia privada en C#?
- 4. C++ - Inicializando un mapa estático como miembro de clase privada
- 5. Clase interna privada sintetiza clase anónima inesperada
- 6. Dificultad en concepto NULL en C?
- 7. ¿Clase base privada errónea inaccesible?
- 8. Cómo definir una clase dentro de otra clase 'privada en C++
- 9. VS.NET se establece de manera predeterminada en la clase privada
- 10. función de amigo en clase derivada con herencia privada
- 11. Generar clave privada RSA en C#
- 12. ¿Documentando un concepto de C++ usando doxygen?
- 13. C++ verificación de concepto vs herencia
- 14. Android: recomendaciones de AsyncTask: clase privada o clase pública?
- 15. concepto de concepto de página maestra en python
- 16. ¿Estática privada de VB6 en C#?
- 17. Activator.CreateInstance con la clase sellada privada
- 18. ¿Puede una clase @Embeddable ser privada?
- 19. ¿Es posible tener una clase privada?
- 20. Idioma de programación Java: clase de implementación privada
- 21. Subclasificación de una clase privada (soporte) en AVM2
- 22. No puedo hacer ningún paquete de clase privada en Scala?
- 23. C++ herencia privada y miembros/tipos estáticos
- 24. Groovy Concepto de cierre
- 25. ¿Hay algún concepto en C++ como reflector en .Net?
- 26. diferencia entre la variable privada instancia y la propiedad en extensión de clase (Objective-C 2.0)
- 27. concepto de punto de secuencia en java
- 28. ¿Cómo leer una clave privada del archivo pvk en C#?
- 29. C++ clave privada de exportación OpenSSL
- 30. Acceso a clase interna privada en el mismo paquete
Supongo que OP tiene más experiencia en Java, lo que permitiría la visibilidad dentro del mismo archivo fuente. –