[ Foro de C# ]

Ejercicio 5.2.3

14-Jun-2017 16:20
Toni Alonso
2 Respuestas

Estoy encantado con el curso de C#, pero he llegado a un escollo que me está costando. El enunciado dice así: "Descompón en funciones la base de datos de ficheros (ejemplo 04_06a), de modo que el "Main" sea breve y más legible (Pista: las variables que se compartan entre varias funciones deberán estar fuera de todas ellas, y deberán estar precedidas por la palabra "static")."
El problema lo tengo al crear el array del struct fuera del Main. Cuando tengo un problema, suelo crear un mini programa con los mismos elementos para hacer pruebas pero este no lo saco. Mi codigo:
using System;

namespace ProbandoStruct
{
class MainClass
{
struct persona
{
public int edad;
public string nombre;
}
               //En esta linea siguiente es donde da el error
public static persona[] gente = new persona[300];

public static string saludo="Hola";
public static void MeteDatos ()
{
Console.WriteLine (saludo);
}
public static void Main (string[] args)
{

MeteDatos();
}
}
}
El error que me da en la linea es:  Incoherencia de accesibilidad: el tipo de campo 'ProbandoStruct.MainClass.persona[]' es menos accesible que el campo 'ProbandoStruct.MainClass.gente'.
Donde tendría que declarar el array? Y porque?

Gracias anticipadas!!


15-Jun-2017 10:17
Invitado (Caranim)

Básicamente es que la estructura "persona" NO es pública, pero sus componentes - "edad" y "nombre" - SI lo son. Definiendo como pública la estructura el error desaparece.


15-Jun-2017 16:15
Toni Alonso

Muchas gracias! Me has sido de gran ayuda, puedo continuar con el curso!
Un saludo.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)