Partager cet article

Comme plus de 28 000 freelances, recevez des offres de mission tech à la messure de votre talent sur FreelanceRepublik.

Derniers articles

AccueilMétiers de la TechDéveloppeur C#Pourquoi et comment apprendre C#

Pourquoi et comment apprendre C#

Vous vous intéressez à C#, à .NET, ou plus généralement au monde du développement made in Microsoft ? Vous pensez vous mettre à ce langage mais souhaitez en apprendre plus avant de franchir le pas ? Connaitre ses cas d’utilisation, sa syntaxe, ses avantages et inconvénients ?

Vous êtes au bon endroit ! Dans cet article, nous allons faire le point sur C#, les technos qui l’entourent et nous verrons comment l’apprendre efficacement !

Introduction à C#

Logo du langage de développement C#

Avant d’en apprendre plus sur ce langage, sa syntaxe, ou comment l’apprendre, il est important de commencer par le définir et de faire un petit résumé de son historique.

C#, qu’est-ce que c’est ?

C# est donc un langage de programmation orienté objet créé en 2000 par Anders Hejlsberg (de chez Microsoft) et standardisé en 2002. Ce qui en fait au final un langage pas si ancien, si on le compare à PHP (1994), Python (1991) ou Java (1995).

Ce langage a été conçu pour pour développer sur la plateforme Microsoft .NET.

Régulièrement mis à jour, C# a pour version actuelle la 10.0 (sortie en novembre 2021).

Selon l’index Tiobe, C# est, en janvier 2022, le 5ème langage le plus utilisé (juste derrière C++, et devant Visual Basic).

Pour quels cas d’utilisation ?

Si on ne connait pas l’écosystème C#, on pourrait croire que ce langage se limite au développement logiciel Windows, mais ce n’est pas le cas, loin de là ! Voyons les cas d’usage que permet ce langage.

Le développement logiciel

C’est bien évidemment le cas, il permet le développement logiciel sous Windows. C#, notamment via le framework .NET, est idéal pour faire du logiciel sous ce système d’exploitation (et uniquement sous Windows).

Du développement web

Grâce au framework ASP.NET (incorporé dans la suite Microsoft .NET), il est possible de générer des pages web dynamique en écrivant du code C#

Pour voir la documentation officielle d’ASP.NET, c’est ici !

Du développement mobile cross-platform

Et oui, il est aussi possible de créer des applications mobiles en C# ! Grâce au framework Xamarin, on peut en effet développer des applications à la fois sur Android et iOS, avec une seule base de code.

Xamarin est à l’origine une entreprise indépendante, lancée en 2011, puis rachetée par Microsoft en 2016.

C#, dans la technique

Maintenant qu’on connait mieux cette techno, son origine et ses cas d’utilisation, plongeons dans la technique !

Les caractéristiques du langage

C# est un langage dérivé du C++ et a une certaine ressemblance au Java. Néanmoins, ce langage vient avec ses propres caractéristiques et nouveautés. Il inclut, par exemple :

  • Un typage sûr ;
  • La possibilité de faire de l’encapsulation, de l’héritage et du polymorphisme ;
  • Un ramasse-miettes ;
  • Un système de gestion d’exceptions.

Pour mieux comprendre comment fonctionne se langage, comparons-le au C++ et au Java.

Le C# comparé au C++

Voici une liste des principales différences qu’il y a entre le langage de Microsoft te le C++ :

  • C# n’autorise pas la destruction explicite des objets (le ramasse-miettes libère la mémoire lorsque l’objet n’a plus aucune référence) ;
  • L’héritage multiple de classes est interdit, mais une classe peut hériter d’un nombre illimité d’interfaces ;
  • Certaines syntaxes (on en reparlera) pour la déclaration sont différentes, comme par exemple pour les tableaux (int a[5] devient ainsi int[] a = new int[5]) ;
  • C# ne gère pas les templates, mais possède des types génériques à la place (introduits dans la version 2.0 de cette techno).

Le C# comparé au Java

Logo du langage Java

Si on doit comparer le C# au Java, voilà les différences principales que l’on pourrait citer :

  • C#, contrairement à Java, autorise les surcharges d’opérateurs ;
  • Java permet la génération de documentation HTML (à l’aide des Javadoc), C# utilise lui des descriptions basées sur du XML ;
  • C# ne contient pas d’implémentations anonymes d’interfaces ;
  • Là ou Java utilise le design pattern Observer, C# prend en charge les méthodes déléguées, les évènements et les indexeurs.

La syntaxe par l’exemple

Le mieux est toujours de voir du code pour bien comprendre un langage de programmation, et C# ne fait pas exception. Passons en revue quelques exemples de sa syntaxe pour bien en réaliser les différences qu’il possède par rapport aux autres langages.

Commençons par afficher un classique Hello World :

usingSystem;

Console.WriteLine("Hello, world!");

Toutefois, ce code n’est valable qu’à partir de la version 9 de C#. Avant, le point d’entrée d’un programme devait forcément être une méthode Main. Par exemple :

usingSystem;

// A version of the classic "Hello World" programclassProgram{
staticvoid Main(string[] args)
    {
        Console.WriteLine("Hello, world!");
    }
}

Voyons maintenant un même exemple de Hello World, mais cette fois affiché dans une boite de dialogue (via une interface graphique, donc) :

usingSystem;
usingSystem.Windows.Forms;

classProgram{
staticvoid Main()
    {
        MessageBox.Show("Hello, World!");
        Console.WriteLine("Is almost the same argument!");
    }
}

Dans l’exemple ci-dessus, on voit qu’on a rajouté une bibliothèque : usingSystem.Windows.Forms. C’est elle qui permet la création de la MessageBox.

En ce qui concerne les types et la façon de déclarer des variables :

int a = 5;
int b = a + 2; //OK

bool test = true;

// Error. Operator '+' cannot be applied to operands of type 'int' and 'bool'.
int c = a + test;

Pour information, contrairement aux langages C et C++, un booléen n’est pas convertible en integer (c’est l’explication de l’erreur en commentaire de la dernière ligne).

Pourquoi se mettre à C# ?

Développeur C# freelance en train de développer devant son ordinateur

Vous ne savez toujours pas si vous devez vous mettre à C# ou pas ? Faisons un comparatif des avantages et inconvénients de ce langage pour y voir plus clair !

Les avantages de C#

  • C# permet de construire des applications Windows sans passer par C++ (qui est un peu plus complexe) ;
  • Les cas d’utilisation sont nombreux et ne se limitent pas au développement logiciel (on peut faire aussi bien du web que du mobile) ;
  • Il est open-source est appartient à Microsoft, on peut donc être sûr de sa pérennité ;
  • C’est un langage très utilisé, il y a donc de la demande au niveau de l’emploi, notamment si vous voulez devenir développeur freelance.

Les inconvénients de C#

  • Ce n’est pas le langage le plus simple à apprendre (bien qu’il soit plus lisible que C++, il est toujours plus difficile à apprendre que le JavaScript ou le langage Python) ;
  • Il vise en priorité Windows (si votre but est donc de faire du développement logiciel multi-plateformes, ce n’est pas la techno la plus adaptée.

Apprendre C# pour devenir développeur freelance

On l’a dit dans les avantages de la techno, le fait que ce soit un langage très utilisé fait qu’il y a une forte demande, et donc beaucoup d’offres d’emploi.

Si vous n’êtes pas développeur et voulez le devenir, ça peut donc être une bonne solution (bien que, comme on l’a dit, ça n’est pas le langage le plus simple à appréhender).

Et si vous êtes déjà développeur, le C# peut être une bonne passerelle pour s’orienter vers le monde du freelance.

Ce statut d’indépendant peut être avantageux pour un développeur, que ça soit pour avoir un meilleur salaire, plus d’autonomie ou plus de temps libre.

Comment apprendre le langage C# ?

Après cette introduction au C#, avoir vu sa syntaxe, ses avantages et inconvénients, vous voulez vous mettre à ce langage ? Voyons ensemble le meilleur moyen de l’apprendre !

Certains cursus universitaires enseignent le C#, néanmoins l’apprentissage en autodidacte est évidemment plus rapide et vous intéressera sûrement plus.

Dans ce cas, il y a évidemment la documentation officielle de Microsoft, qui vous fournit des tutoriels complets.

Pour ce qui est des cours en français, vous en trouverez notamment sur Udemy, comme celui-ci.

Il existe aussi du contenu vidéo gratuit, sur Youtube par exemple. La chaîne FreeCodeCamp, bien connue des développeurs, met à disposition une vidéo de 4h30 sur C#. En français, vous pouvez trouver des séries de vidéos pour apprendre ce langage de programmation, comme celle-ci.

Également, vous pouvez faire financer votre formation, par votre entreprise par exemple, via des organismes spécialisés qui proposent des formations de quelques jours, dispensées par des professionnels.


En conclusion, on peut dire que le C# est un langage qui peut valoir le coup d’être appris, suivant les types de projets sur lesquels vous travaillez (mais, on l’a vu, ses cas d’utilisation sont nombreux !).

Il n’est pas trop difficile à apprendre et il est très demandé – donc les offres d’emploi seront là.

Mais dites-nous en commentaire ce que vous, vous pensez de ce langage !

Ces articles peuvent vous intéresser

Ne perdez plus de temps à prospecter en vain. Inscrivez-vous gratuitement sur FreelanceRepublik, et recevez de belles offres de missions tech. FreelanceRepublik est gratuit pour les freelances.