Module C#.3 – Syntaxe & bases
Objectif
Maîtriser la syntaxe fondamentale de C# : structure Main, Console.WriteLine, déclaration de variables avec var, et premières instructions pour créer des programmes console.
Théorie
Main
Main est le point d'entrée de toute application C#.
Structure de base :
class Program
{
static void Main(string[] args)
{
// Code ici
}
}
Explication :
static: Méthode de classe (pas besoin d'instance)void: Ne retourne rienMain: Nom obligatoirestring[] args: Arguments de la ligne de commande
Arguments :
dotnet run arg1 arg2 arg3
static void Main(string[] args)
{
Console.WriteLine($"Nombre d'arguments : {args.Length}");
for (int i = 0; i < args.Length; i++)
{
Console.WriteLine($"Argument {i} : {args[i]}");
}
}
Top-level statements (C# 9.0+) :
// Program.cs simplifié (C# 9.0+)
Console.WriteLine("Bonjour");
// Plus besoin de class Program et Main explicites
// Le compilateur les génère automatiquement
Console.WriteLine
Affiche du texte dans la console.
Utilisation de base :
Console.WriteLine("Bonjour le monde");
Console.Write("Sans saut de ligne");
Interpolation de chaînes (string interpolation) :
string nom = "Jean";
int age = 30;
Console.WriteLine($"Bonjour {nom}"); // Bonjour Jean
Console.WriteLine($"Bonjour {nom.ToUpper()}"); // Bonjour JEAN
Console.WriteLine($"{nom} a {age} ans"); // Jean a 30 ans
Console.WriteLine($"Dans 10 ans, {nom} aura {age + 10} ans");
Formatage avec placeholders :
string nom = "Jean";
int age = 30;
Console.WriteLine("{0} a {1} ans", nom, age);
Console.WriteLine("{0} a {1} ans et habite à {2}", nom, age, "Paris");
Formatage numérique :
double prix = 19.99;
Console.WriteLine($"Prix : {prix:C}"); // Prix : 19,99 € (format monétaire)
Console.WriteLine($"Prix : {prix:F2}"); // Prix : 19.99 (2 décimales)
Console.WriteLine($"Pourcentage : {0.15:P}"); // Pourcentage : 15,00 %
Lire depuis la console :
Console.Write("Entrez votre nom : ");
string nom = Console.ReadLine();
Console.Write("Entrez votre âge : ");
string ageStr = Console.ReadLine();
int age = int.Parse(ageStr);
Gestion d'erreurs de lecture :
Console.Write("Entrez un nombre : ");
string input = Console.ReadLine();
if (int.TryParse(input, out int nombre))
{
Console.WriteLine($"Nombre : {nombre}");
}
else
{
Console.WriteLine("Nombre invalide");
}
Variables
Déclaration avec type explicite
int age = 25;
string nom = "Jean";
double prix = 19.99;
bool estActif = true;
char lettre = 'A';
var (inférence de type)
C# infère automatiquement le type (depuis C# 3.0).
var age = 25; // Type inféré : int
var nom = "Jean"; // Type inféré : string
var prix = 19.99; // Type inféré : double
var estActif = true; // Type inféré : bool
// Une fois déclaré, le type est fixe
var nombre = 42;
// nombre = "texte"; // Erreur : ne peut pas changer de type
Quand utiliser var :
- Type évident depuis la valeur
- Avec LINQ (types complexes)
- Code plus lisible
Quand ne pas utiliser var :
- Type non évident
- Pour la clarté pédagogique
- Quand le type est important pour la compréhension
Constantes
const : Constante de compilation
const int MAX_USERS = 100;
const string SITE_NAME = "Mon Site";
const double PI = 3.14159;
// MAX_USERS = 200; // Erreur : ne peut pas modifier
readonly : Constante d'instance (peut être initialisée dans le constructeur)
class MaClasse
{
private readonly int valeur;
public MaClasse(int v)
{
valeur = v; // OK : initialisation dans constructeur
// valeur = 10; // Erreur : déjà initialisée
}
}
Règles de nommage
Variables et méthodes : camelCase
int nomUtilisateur = 30;
void calculerMoyenne() {}
Classes : PascalCase
class Personne {}
class GestionnaireUtilisateurs {}
Constantes : UPPER_SNAKE_CASE
const int MAX_SIZE = 100;
const string API_URL = "https://api.exemple.com";
Interfaces : I + PascalCase
interface IAffichable {}
Commentaires
// Commentaire sur une ligne
/* Commentaire
sur plusieurs
lignes */
/// Documentation XML (IntelliSense)
/// <summary>
/// Calcule la moyenne de deux nombres
/// </summary>
/// <param name="a">Premier nombre</param>
/// <param name="b">Deuxième nombre</param>
/// <returns>La moyenne des deux nombres</returns>
double Moyenne(double a, double b)
{
return (a + b) / 2;
}
Exercice
-
Programme de base
- Créez un programme qui affiche votre nom
- Utilisez Console.WriteLine avec interpolation
- Testez différents formats
-
Variables
- Déclarez des variables de tous les types primitifs
- Utilisez var pour certaines
- Affichez leurs valeurs
-
Entrée utilisateur
- Demandez le nom à l'utilisateur
- Lisez avec Console.ReadLine
- Validez avec TryParse
- Affichez un message personnalisé
-
Constantes
- Définissez des constantes const
- Utilisez readonly dans une classe
- Testez qu'elles ne peuvent pas être modifiées
-
Formatage
- Utilisez l'interpolation de chaînes
- Formatez des nombres (monétaire, décimales)
- Créez des messages complexes
Quiz
-
Quel est le point d'entrée en C# ?
- Start()
- Main()
- Run()
-
Comment afficher avec saut de ligne ?
- Console.Write()
- Console.WriteLine()
- Console.Print()
-
Que fait
varen C# ?- Crée une variable globale
- Infère le type automatiquement
- Rend la variable constante
-
Comment lire depuis la console ?
- Console.Read()
- Console.ReadLine()
- Console.Input()
-
Comment déclarer une constante ?
- var CONST = "valeur"
- const string CONST = "valeur"
- final string CONST = "valeur"
Mini défi
Mission : Créer une application console interactive
Créez un programme Interaction.cs qui :
-
Demande des informations
- Demandez le nom à l'utilisateur
- Demandez l'âge (avec validation)
- Demandez la ville
-
Affiche un message personnalisé
- Utilisez l'interpolation de chaînes
- Formatez avec Console.WriteLine
- Ajoutez des sauts de ligne
-
Calculs
- Calculez l'année de naissance
- Affichez avec formatage
-
Constantes
- Utilisez const pour des valeurs fixes
- Utilisez readonly si dans une classe
- Affichez les constantes
Exemple de sortie :
========================================
INFORMATIONS PERSONNELLES
========================================
Nom : Jean
Age : 30 ans
Ville : Paris
Année naiss. : 1996
========================================
Critères :
- ✅ Utilisation correcte de Main()
- ✅ Variables bien typées (var où approprié)
- ✅ Interpolation de chaînes
- ✅ Validation des entrées (TryParse)
- ✅ Code propre et commenté
- ✅ Formatage clair
Objectif : Maîtriser la syntaxe de base de C# et créer des programmes console interactifs.
Validation : Vous pouvez passer au module suivant quand vous maîtrisez Main(), Console.WriteLine, variables et pouvez créer des programmes console simples.