Voici un tutoriel approfondi en français pour débuter avec C#, respectant la structure et les règles données :
Pourquoi C# ?
C# est une langue de programmation moderne, polyvalente et très populaire dans le développement d'applications modernes. Elle est principalement utilisée par Microsoft pour développer des applications Windows, des jeux vidéo avec Unity, des applications web avec .NET Core et des services cloud.
Cas d'usage concret
Un développeur C# peut être employé dans une variété de secteurs, comme le développement logiciel d’entreprise, l’éducation en ligne, la création de jeux vidéo ou le développement d’application mobile.
Prerequis
Avant de commencer avec C#, assurez-vous que vous avez les compétences suivantes :
- Connaissance de base de l'informatique et des systèmes d'exploitation
- Familiarité avec un éditeur de code (Visual Studio, Visual Studio Code, JetBrains Rider)
- Capacité à lire et comprendre le code C#
Vous devrez installer les outils suivants :
- .NET SDK : Il s'agit du Kit de développement logiciel .NET, qui est nécessaire pour développer des applications .NET. Vous pouvez télécharger la dernière version depuis dotnet.microsoft.com.
- Visual Studio Code : Un éditeur de code open source et puissant. Il peut être téléchargé à partir de code.visualstudio.com.
Concepts fondamentaux
Variables et Types de Données
Les variables sont des conteneurs qui stockent les données dans le programme. C# supporte plusieurs types de données.
// Déclaration d'une variable entière
int age = 25;
// Déclaration d'une variable chaîne de caractères
string nom = "John";
// Déclaration d'une variable booléenne
bool estMajeur = true;
Opérations sur les Variables
Vous pouvez effectuer des opérations sur les variables en utilisant des opérateurs arithmétiques.
int a = 10;
int b = 5;
// Addition
int somme = a + b; // somme vaut 15
// Soustraction
int difference = a - b; // difference vaut 5
// Multiplication
int produit = a * b; // produit vaut 50
// Division
int quotient = a / b; // quotient vaut 2
Structures de Contrôle
C# fournit plusieurs structures de contrôle pour organiser le flux du programme.
// Condition if-else
if (age >= 18)
{
Console.WriteLine("Majeur");
}
else
{
Console.WriteLine("Mineur");
}
// Boucle for
for (int i = 0; i < 5; i++)
{
Console.WriteLine(i);
}
// Boucle while
int j = 0;
while (j < 3)
{
Console.WriteLine(j);
j++;
}
Fonctions et Méthodes
Les fonctions permettent de regrouper des instructions en blocs réutilisables.
// Déclaration d'une fonction
void AfficherMessage(string message)
{
Console.WriteLine(message);
}
// Appel de la fonction
AfficherMessage("Bonjour le monde !");
Mise en pratique : Projet fil rouge
Nous allons construire un mini-projet réaliste : un Gestionnaire de Tâches.
Étape 1 : Création du Projet
Ouvrez Visual Studio Code et créez un nouveau projet .NET Console App :
dotnet new console -n TaskManager
cd TaskManager
Étape 2 : Ajout des Classes
Créer deux fichiers Task.cs et Program.cs.
Task.cs
using System;
public class Task
{
public string Description { get; set; }
public bool IsCompleted { get; set; }
public Task(string description)
{
Description = description;
IsCompleted = false;
}
public void MarkAsComplete()
{
IsCompleted = true;
}
public override string ToString()
{
return $"{Description} - {(IsCompleted ? "Terminée" : "Non terminée")}";
}
}
Program.cs
using System;
using System.Collections.Generic;
class Program
{
static List<Task> tasks = new List<Task>();
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("1. Ajouter une tâche");
Console.WriteLine("2. Marquer une tâche comme terminée");
Console.WriteLine("3. Afficher toutes les tâches");
Console.WriteLine("4. Quitter");
Console.Write("Choisissez une option : ");
string choice = Console.ReadLine();
switch (choice)
{
case "1":
AddTask();
break;
case "2":
MarkTaskAsComplete();
break;
case "3":
DisplayTasks();
break;
case "4":
return;
default:
Console.WriteLine("Option invalide.");
break;
}
}
}
static void AddTask()
{
Console.Write("Entrez la description de la tâche : ");
string description = Console.ReadLine();
tasks.Add(new Task(description));
Console.WriteLine("Tâche ajoutée avec succès !");
}
static void MarkTaskAsComplete()
{
DisplayTasks();
if (tasks.Count > 0)
{
Console.Write("Entrez le numéro de la tâche à marquer comme terminée : ");
int index = Convert.ToInt32(Console.ReadLine()) - 1;
if (index >= 0 && index < tasks.Count)
{
tasks[index].MarkAsComplete();
Console.WriteLine("Tâche marquée comme terminée !");
}
else
{
Console.WriteLine("Numéro de tâche invalide.");
}
}
}
static void DisplayTasks()
{
if (tasks.Count > 0)
{
for (int i = 0; i < tasks.Count; i++)
{
Console.WriteLine($"{i + 1}. {tasks[i]}");
}
}
else
{
Console.WriteLine("Aucune tâche n'est enregistrée.");
}
}
}
Étape 3 : Exécution du Projet
Exécutez le projet :
dotnet run
Erreurs fréquentes et debugging
Voici quelques erreurs courantes et leur correction.
Erreur 1 : Variable non déclarée
Code incorrect :
int result = x + y; // erreur car x et y ne sont pas définis
Code correct :
int x = 5;
int y = 3;
int result = x + y;
Erreur 2 : Type de données incorrect
Code incorrect :
string age = "18"; // erreur car on essaie d'affecter une chaîne à une variable entière
int parsedAge = int.Parse(age);
Code correct :
string ageString = "18";
int parsedAge = Convert.ToInt32(ageString);
Erreur 3 : Accès au tableau hors limites
Code incorrect :
int[] numbers = { 1, 2, 3 };
Console.WriteLine(numbers[3]); // erreur car l'index est dépassé
Code correct :
int[] numbers = { 1, 2, 3 };
if (numbers.Length > 3)
{
Console.WriteLine(numbers[3]);
}
else
{
Console.WriteLine("Index hors limites");
}
Pour aller plus loin
- Développement Web avec ASP.NET Core : https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-6.0
- Développement de jeux vidéo avec Unity : https://docs.unity3d.com/Manual/index.html
- Apprendre le design pattern en C# : https://www.c-sharpcorner.com/article/design-patterns-in-csharp/
Défi pratique
Créez une application simple pour gérer des contacts. L'application devrait permettre d'ajouter, de modifier et de supprimer des contacts, ainsi que d'afficher la liste complète des contacts.
Bon appétit avec votre tutoriel en C#! N'hésitez pas à me poser des questions si vous avez besoin de plus de détails.