Erreur Accessibilité incohérente en c#
Résolu
iliass0408
Messages postés
15
Statut
Membre
-
L0ci Messages postés 112 Statut Membre -
L0ci Messages postés 112 Statut Membre -
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");
}
}
}
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
-
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. -
Merci l'erreur est résolu, mais le programme ne tourne pas bien, j'ai qq chose qui ne va pas bien dans mon switch; lorsque j'entre un choix il ne s'exécute pas, il me donne le message déclaré dans (default) :entrer un choix de 1 à 6.....???
Aidez moi svp -
Bonjour,
l'erreur, je pense, vient du fait que la valeur rentrée par l'utilisateur n'est pas celle qui est dans le switch:menu(); //tu affiches ton menu do { choix= Console.ReadKey(); //tu lis l'entrée et tu affectes la //variable qui passe dans le switch 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; } } while ( (choix!="6")); } public static void menu() { Console.WriteLine("|-----Gestion des notes des étudiants-------|"); Console.WriteLine("|----Programme réalisé 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"); }
Si tu veux ré-afficher ton menu entier a chaque fois il suffit de le mettre dans le do{} -
Merci pour ton aide ça marche, une dernière question svp, si je veux trier mes stagiaires par ordre alphabétique, comment je vais procéder
merci pour votre aide -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
eh bien si tes étudiants sont dans une base de données il suffit d'ajouter un ORDER BY 'nom_de_la_colonne' a la fin de ta requête. -
Non, c'est pas le cas. les étudiants sont entrés ds une liste par l'utilisateur.Merci qd meme
-
As-tu essayé ta_liste.Sort() ?
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?redirectedfrom=MSDN&view=netframework-4.8