Erreur Accessibilité incohérente en c#

Résolu/Fermé
iliass0408 Messages postés 10 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 9 février 2013 - 17 avril 2012 à 23:42
L0ci Messages postés 110 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 9 janvier 2013 - 24 avril 2012 à 09:10
Bonjour,

On ns a demandé de faire un prog de gestion de stagiaire, voici mon code:
le compilateur m'affiche l'erreur suivante:

Erreur 1 Accessibilité incohérente : le type de paramètre 'MenuEtudEx4.Program.etd' est moins accessible que la méthode 'MenuEtudEx4.Program.ajouter(System.Collections.Generic.List<MenuEtudEx4.Program.etd>, MenuEtudEx4.Program.etd)' D:\DebutC#\MenuEtudEx4\MenuEtudEx4\Program.cs 56 28 MenuEtudEx4


Je ne vois pas ce que c'est, aidez moi svp.





using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MenuEtudEx4
{
class Program
{
struct etd
{
public string nom;
public string prenom;
public string filiere;
public int annee;
public double[] notes;
}

static void Main(string[] args)
{
string choix="";
List<etd> maliste = new List<etd>();
etd e1=new etd();
do
{
menu(choix);
switch (choix)
{
case "1": ajouter(maliste,e1);break;
case "2": rechercher(maliste);break;
case "3": modifier(maliste, e1);break;
case "4": supprimer(maliste);break;
case "6": Console.WriteLine("A la prochaine");break;
default: Console.WriteLine("entrer un choix de 1 à 6");break;
}
Console.ReadKey();
} while ( (choix!="6"));

}

public static void menu(string ch)
{
Console.WriteLine("|-----Gestion des notes des étudiants-------|");
Console.WriteLine("|----Programme rélaisé par -----|");
Console.WriteLine("|-------------------------------------------|");
Console.WriteLine("|1--> Pour ajouter un étudiant |");
Console.WriteLine("|2--> Pour rechercher un étudiant |");
Console.WriteLine("|3--> Pour modifier un étudiant |");
Console.WriteLine("|4--> Pour supprimer un étudiant |");
Console.WriteLine("|5--> Pour trier les étudiants |");
Console.WriteLine("|6--> Pour quitter |");
Console.WriteLine("/t entrer votre choix /t");
ch = Console.ReadLine();
}

public static void ajouter(List<etd> maliste1,etd E)
{

Console.Write("Entrer nom:"); E.nom = Console.ReadLine();
Console.Write("Entrer prénom:"); E.prenom = Console.ReadLine();
Console.Write("Entrer filière:");E.filiere = Console.ReadLine();
Console.Write("Entrer année:"); E.annee = int.Parse(Console.ReadLine());
Console.WriteLine("Entrer les notes:"); E.notes = new double[3];
for (int i = 0; i < E.notes.Length; i++)
{
Console.Write("Entrer une note:"); E.notes[i] = double.Parse(Console.ReadLine());
Console.Write("\n");
}
Console.WriteLine("Etudiant bien ajouté!");
maliste1.Add(E);
}

public static void rechercher(List<etd>list)
{
String n = string.Empty;
int p = -1, k = 0;
Console.WriteLine("Entrer le nom de l'étudiant");
n = Console.ReadLine();
foreach (etd element in list)
{
if (element.nom == n)
p = k;
else k++;
}
if (p >= 0)
{
Console.Write(list[p].nom + " " + list[p].prenom + " " + list[p].filiere + " " + list[p].annee);
Console.Write(" Ses notes:");
for (int i = 0; i < list[p].notes.Length; i++)
{
if (i == list[p].notes.Length - 1)
Console.Write(list[p].notes[i]);
else
Console.Write(list[p].notes[i] + ",");
}
Console.Write("\n");
}
else
Console.Write("Pas d'enregistrement");
}

public static void modifier(List<etd> liste,etd e)
{
string n1 = "";
int p1 = -1, k1 = 0;
Console.WriteLine("entrer le nom à modifier:");
n1 = Console.ReadLine();
foreach (etd element in liste)
{
if (element.nom == n1)
p1 = k1;
else k1++;
}
if (p1 >= 0)
{
Console.Write("Entrer nom:");
e.nom = Console.ReadLine();
Console.Write("Entrer prénom:");
e.prenom = Console.ReadLine();
Console.Write("Entrer filière:"); e.filiere = Console.ReadLine();
Console.Write("Entrer année:"); e.annee = int.Parse(Console.ReadLine());
Console.WriteLine("Entrer les notes:");
e.notes = new double[3];
for (int i = 0; i < e.notes.Length; i++)
{
Console.Write("Entrer une note:"); e.notes[i] = double.Parse(Console.ReadLine());
Console.Write("\n");
}
liste[p1] = e;
}
else
Console.Write("Pas denregistrements");
}

public static void supprimer(List<etd> liste2)
{
string n2 = "";
int p1 = -1; int k1 = 0;
Console.Write("Sasissez le nom de l'étudiant à supprimer:");
n2 = Console.ReadLine();
foreach (etd element in liste2)
{
if (element.nom == n2)
p1 = k1;
else k1++;
}
if (p1 >= 0)
liste2.RemoveAt(p1);
else
Console.Write("Pas denregistrements");
}


}

}






7 réponses

L0ci Messages postés 110 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 9 janvier 2013 30
18 avril 2012 à 08:59
Bonjour,

essaie de déclarer ta structure en public:
public struct etd 
{ 
   public string nom; 
   public string prenom; 
   public string filiere; 
   public int annee; 
   public double[] notes; 
} 


l'erreur survient car ta méthode ajouter est public mais ta structure ne l'est pas. Ta structure est donc plus protégée que la méthode, d'ou l'erreur.
3