Erreur "} expected" et "Type or namespace..." incompréhensibles

Bonjour,

Dans VS Code, lors d’un exercice pour apprendre à programmer en C#, j’ai un message d’erreur qui apparaît et qui concerne les bornes “{ }”.

Le message d’erreur est le suivant :
} expected [app]
Type or namespace definition, or end-of-file expected [app]

Mon code est pourtant OK, la borne “{” est bien présente, il reconnait même la borne “}” de la même couleur…

Ce sont les bornes hors de la zone “DEBUT et FIN de votre programme” qui posent problème.

J’ai retéléchargé et réouvert sur VS Code le fichier support trois fois, rien n’y fait. Je n’avais jusqu’alors jamais eu ce problème avec le fichier.

Le code est le suivant :

using System;

public class Application
	{
	public void fonctionPrincipale ()
	{	
		//DEBUT de votre programme

Console.WriteLine("entrez votre nom :");
string nom = Utilisateur.saisirTexte();
Console.WriteLine("entrez votre prénom :");
string prenom = Utilisateur.saisirTexte();

class Date
{
public int jour=0;
public int mois=0;
public int annee=0;
}

class Name
{
public string nom = " ";
public string prenom = " ";
}

Date date=new Date();
Name nomComplet = new Name();


Date saisieDate()
{
Console.WriteLine("Jour : ");
date.jour = Utilisateur.saisirEntier();
Console.WriteLine("Mois : ");
date.mois = Utilisateur.saisirEntier();
Console.WriteLine("Année : ");
date.annee = Utilisateur.saisirEntier();

return date;
}

Name saisieNom()
{
Console.WriteLine ("Quel est votre nom?");
string nom = Utilisateur.saisirTexte();
nomComplet.nom = nom;

Console.WriteLine("Quelle est votre prénom?");
string prenom = Utilisateur.saisirTexte();
nomComplet.prenom = prenom;

return nomComplet;
}

void afficherDate(Date date)
{
Console.WriteLine("Date : "+date.jour+"/"+date.mois+"/"+date.annee);
}

void afficherNom (Name nomComplet)
{
Console.WriteLine (nomComplet.prenom+" "+nomComplet.nom+" ");
}
	
		//FIN de votre programme
	
	}
	//DECLAREZ VOS FONCTIONS EN DESSOUS DE CETTE LIGNE

	/* EXEMPLES DE PROCEDURES ET FONCTIONS :
	
		void uneProcedure(int param1, int param2)
		{
			Console.WriteLine(param1+param2);
		}
		
		int uneFonction(int param1, int param2)
		{
			int resultat = 0;
			resultat = param1 + param2;
			return resultat;
		}
		
		
		*/

	//NE PAS TOUCHER LE CODE EN DESSOUS DE CETTE LIGNE

	}

Merci de votre aide…

Guillaume

Je crois que je viens de comprendre que les nouveaux types crées dans des classes ne peuvent être déclarées dans à l’intérieur d’une autre classe (ce que je faisais dans mon code) et doivent dans mon cas être déclarées en amont…

En fait je vois au moins 2 soucis :

  • il te faut faire 1 fichier par classe. Tu ne peux pas tout mettre dans le même fichier, et surtout pas déclarer des classes à l’intérieur de fonctions.
  • Les instructions doivent être dans des fonctions.
    Par exemple :

Ces 2 lignes doivent être dans une fonction (fonctionPrincipale par exemple)

1 « J'aime »