Modèles is, relationnels et logiques (émulation en C# 6)
Émulez les modèles de base en C# 6 : vérifications de type avec is, contrôles d’intervalle et relations, ainsi que composition logique au moyen de petits assistants de prédicats.
Modèles is, relationnels et logiques (émulation en C# 6) est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C# Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C# Academy comprend 3 leçons au total.
Idées de motifs en C# 6
Objectif : utiliser C# 6 pour reproduire des motifs courants.
- Motif de type : vérification de type et conversion
- Relationnel : fonctions de garde (par exemple, >, <)
- Logique : combiner de petits prédicats (AND/OR/NOT)
Motif de type avec vérification et conversion
Imitez un motif de type avec une vérification de type suivie d’une conversion explicite pour « lier » une variable locale.
using System;
public class Program
{
static string Describe(object x)
{
if (x is int)
{
int i = (int)x; // bind
return "int: " + i;
}
if (x is string)
{
string s = (string)x; // bind
return "string(len=" + (s == null ? 0 : s.Length) + ")";
}
return "other";
}
public static void Main(string[] args)
{
Console.WriteLine(Describe(5));
Console.WriteLine(Describe("hi"));
Console.WriteLine(Describe(3.14));
}
}
Les « motifs » relationnels comme contrôles de garde
Créez de petites fonctions de garde pour les vérifications relationnelles ; elles se lisent comme des motifs et sont faciles à réutiliser.
using System;
public class Program
{
static bool IsBetween(int x, int minInclusive, int maxExclusive)
{
return x >= minInclusive && x < maxExclusive;
}
public static void Main(string[] args)
{
int v1 = 10, v2 = -5, v3 = 100;
Console.WriteLine(IsBetween(v1, 0, 100)); // True
Console.WriteLine(IsBetween(v2, 0, 100)); // False
Console.WriteLine(IsBetween(v3, 0, 100)); // False
}
}
Composition logique des contrôles de garde
Combinez de petits prédicats pour reproduire des motifs logiques : AND, OR, NOT.
using System;
public class Program
{
static bool IsEven(int n) { return n % 2 == 0; }
static bool IsPositive(int n) { return n > 0; }
static bool And(Func<int,bool> a, Func<int,bool> b) { return a(4) && b(4); } // example composition (demo)
// For general composition:
static Func<int,bool> AND(Func<int,bool> a, Func<int,bool> b)
{
return delegate(int n) { return a(n) && b(n); };
}
static Func<int,bool> OR(Func<int,bool> a, Func<int,bool> b)
{
return delegate(int n) { return a(n) || b(n); };
}
static Func<int,bool> NOT(Func<int,bool> a)
{
return delegate(int n) { return !a(n); };
}
public static void Main(string[] args)
{
Func<int,bool> evenAndPositive = AND(IsEven, IsPositive);
Console.WriteLine(evenAndPositive(4)); // True
Console.WriteLine(evenAndPositive(-2)); // False
Console.WriteLine(NOT(IsEven)(3)); // True (3 is not even)
}
}
Émulation de type et de relation
Liez la valeur avec une vérification de type et une conversion, puis appliquez une condition de garde — un remplacement direct d’un motif moderne « type + relation ».
using System;
public class Program
{
static string Check(object x)
{
if (x is int)
{
int i = (int)x; // bind
if (i > 0) return "positive int";
return "non-positive int";
}
return "not an int";
}
public static void Main(string[] args)
{
Console.WriteLine(Check(5)); // positive int
Console.WriteLine(Check(-3)); // non-positive int
Console.WriteLine(Check("hey")); // not an int
}
}
Conseils et limites
Conseils :
- Nommez clairement les fonctions de garde (IsBetween, IsNonEmpty, etc.).
- Préférez les vérifications pures ; évitez les effets secondaires.
- Limitez la composition des prédicats pour faciliter la lecture.
Limite : la nouvelle syntaxe des motifs est plus courte, mais ces techniques de C# 6 expriment la même intention.
Émuler un motif de type et de relation
Récapitulatif
Récapitulatif : en C# 6, combinez une vérification de type et une conversion pour lier les valeurs, utilisez de petites gardes pour les vérifications relationnelles et composez les prédicats pour les motifs logiques.
Questions Fréquemment Posées
La leçon « Modèles is, relationnels et logiques (émulation en C# 6) » est-elle gratuite ?
Oui — le texte complet de « Modèles is, relationnels et logiques (émulation en C# 6) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C# Academy, passe à CoddyKit PRO. Le cours C# Academy comprend 3 leçons au total.
Qu'est-ce que j'apprendrai dans « Modèles is, relationnels et logiques (émulation en C# 6) » ?
Émulez les modèles de base en C# 6 : vérifications de type avec is, contrôles d’intervalle et relations, ainsi que composition logique au moyen de petits assistants de prédicats. Tu pratiques C# Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C# Academy ?
Aucune expérience préalable n'est requise. C# Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 3.
Combien de temps prend la leçon « Modèles is, relationnels et logiques (émulation en C# 6) » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C# Academy ?
Oui. Chaque leçon C# Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Modèles is, relationnels et logiques (émulation en C# 6)
- Expressions switch et vérifications d’exhaustivité avec when (émulation en C# 6)
- Modélisation du domaine avec des unions discriminées (enregistrements) — émulation en C# 6