Avatar ·

Type Checking en C# : typeof, GetType() ou is ? Quand utiliser quoi ?

Bonjour à tous ! Je suis un développeur C# débutant et je n'arrive pas à comprendre la vérification des types en C#. Il y a trois façons : l'opérateur `typeof`, la méthode `GetType()` et l'opérateur `is`. Mais quand faut-il utiliser chacun ? Voici un exemple qui me trouble : ```csharp object obj = "Hello, world!"; // Méthode 1 if (obj.GetType() == typeof(string)) Console.WriteLine("C'est une chaîne (GetType)"); // Méthode 2 if (obj is string) Console.WriteLine("C'est une chaîne (is)"); // Méthode 3 Type t = typeof(string); if (obj.GetType() == t) Console.WriteLine("C'est une chaîne (typeof)"); ``` Les trois variantes fonctionnent, mais je sens que ce ne sont pas des choses interchangeables. Par exemple, j'ai entendu dire que `typeof` ne fonctionne qu'avec les types au moment de la compilation, alors que `GetType()` s'exécute à l'exécution. Et `is` est en quelque sorte magique —