Table des matières
2. Modèles constants - Faites correspondre les valeurs spécifiques
3. Commutation des expressions avec des motifs
4. Modèles récursifs - correspondent aux structures imbriquées
Maison développement back-end Tutoriel C#.Net Comment utiliser la correspondance de motifs en C #?

Comment utiliser la correspondance de motifs en C #?

Sep 20, 2025 am 04:32 AM

La correspondance des modèles en C # est une fonctionnalité utilisée pour vérifier les objets par rapport aux modèles et extraire les informations concisement. 1. Les modèles de type permettent la vérification et la coulée en une étape, comme indiqué avec if (valeur est string str). 2. Les modèles constants comparent directement les valeurs avec les constantes, telles que la vérification si (l'entrée est nul). 3. Les expressions de commutation avec des motifs simplifient la logique, démontrée par l'interrupteur de forme renvoyant différentes chaînes en fonction du type de forme. 4. Les modèles récursifs correspondent aux structures imbriquées, comme la personne de vérification est {nom: "Alice", adresse: {City: "Wonderland"}}. Dans l'ensemble, la correspondance des modèles améliore la lisibilité et l'expressivité du code lorsqu'elle est utilisée de manière appropriée.

Comment utiliser la correspondance de motifs en C #?

La correspondance de motifs en C # est une fonctionnalité puissante qui vous permet de vérifier un objet par rapport à un modèle et d'extraire des informations de celui-ci de manière concise et lisible. Il est particulièrement utile lorsque vous travaillez avec différents types, conditions ou structures.

Comment utiliser la correspondance de motifs en C #?

Voici quelques façons pratiques d'utiliser la correspondance des modèles dans votre code C #:


1. Type Modèles - Vérifiez et jetez en une étape

L'une des utilisations les plus courantes de l'appariement des motifs est de vérifier le type d'un objet et de le lancer en même temps.

Comment utiliser la correspondance de motifs en C #?
 si (la valeur est string str)
{
    Console.writeline ($ "c'est une chaîne: {str.toupper ()}");
}

Cela remplace le code plus ancien comme:

 si (la valeur est une chaîne)
{
    String str = (String) Value;
    // ...
}

Ceci est plus propre et évite de répéter le nom de la variable ou de faire un casting séparé.

Comment utiliser la correspondance de motifs en C #?

2. Modèles constants - Faites correspondre les valeurs spécifiques

Vous pouvez utiliser la correspondance de motifs pour comparer les valeurs avec les constantes directement dans une condition.

 si (l'entrée est nul)
{
    Console.writeLine ("l'entrée est nul");
}

Ou avec des valeurs numériques:

 commutateur (numéro)
{
    Cas 0:
        Console.WriteLine ("Zero");
        casser;
    cas var n lorsque n> 0:
        Console.WriteLine ("positif");
        casser;
}

Cela peut rendre la logique conditionnelle plus facile à lire, en particulier lorsqu'elle est combinée avec des expressions switch .


3. Commutation des expressions avec des motifs

C # 8 a introduit les expressions de commutation, qui fonctionnent bien avec la correspondance de motifs pour simplifier la logique.

 Résultat de la chaîne = commutateur de forme
{
    Rectangle r => $ "rectangle: {r.width} x {r.height}",
    Cercle c => $ "cercle: rayon {c.radius}",
    null => "pas de forme",
    _ => "Forme inconnue"
};

Cela remplace les instructions switch plus longues et rend le code plus expressif. Le _ est un modèle de défausse qui correspond à tout ce qui n'est pas couvert ci-dessus.


4. Modèles récursifs - correspondent aux structures imbriquées

En C # 9 et plus tard, vous pouvez utiliser des modèles récursifs pour correspondre aux propriétés imbriquées. Par exemple:

 if (personne est {nom: "Alice", adresse: {City: "Wonderland"}})
{
    Console.Writeline ("Found Alice du pays des merveilles");
}

Ceci est utile lorsque vous souhaitez vérifier les données profondément imbriquées sans écrire plusieurs conditions if .


Quelques choses à garder à l'esprit:

  • La correspondance du motif fonctionne mieux is , switch et dans certains cas avec des expressions switch .
  • Vous pouvez combiner des modèles avec when clauses pour des conditions plus complexes.
  • Évitez de la surutiliser dans une logique profondément imbriquée où la lisibilité pourrait en souffrir.

La correspondance de motifs en C # vous aide à écrire un code plus propre, plus expressif une fois que vous vous êtes habitué à la syntaxe. Ce n'est pas trop complexe, mais il faut un peu de pratique pour savoir quand et comment l'utiliser efficacement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment lire les paramètres de l'application à partir d'AppSettings.json en C #? Comment lire les paramètres de l'application à partir d'AppSettings.json en C #? Sep 15, 2025 am 02:16 AM

La réponse est de lire AppSettings.json à l'aide de Microsoft.Extensions.Configuration. 1. Créez des appsettings.json et définissez les propriétés de copie; 2. Installez le package Microsoft.Extensions.Configuration.json; 3. Chargez la configuration avec ConfigurationBuilder; 4. Lisez la valeur via l'indexeur ou GetConnectionString; 5. Il est recommandé d'utiliser des classes de configuration fortement typées se lier ou se lier.

C # String vs StringBuilder Performances et utilisation. C # String vs StringBuilder Performances et utilisation. Sep 16, 2025 am 05:24 AM

Usestringforminimal, strictextoperations; UsestringBuilderforfrequentModifications ininloopsorlARGE-ScaleconcatenationStoimproveterformancean pourdcececememoryallocation.

Comment utiliser correctement la classe httpclient en C #? Comment utiliser correctement la classe httpclient en C #? Sep 15, 2025 am 01:23 AM

HttpClient doit être réutilisé pendant longtemps plutôt que créé fréquemment. Il est recommandé d'utiliser la gestion de l'injection IhttpClientFactory pour éviter l'épuisement de la prise; S'il n'y a pas de DI, utilisez des cas statiques pour assurer un cycle de vie raisonnable.

De monolithe aux microservices: un guide de migration pour les applications .NET De monolithe aux microservices: un guide de migration pour les applications .NET Sep 19, 2025 am 05:21 AM

La migration des monomères .NET vers les microservices devrait éviter les réécritures ponctuelles. 1. Tout d'abord, effacez la migration des machines mobiles et évitez les pièges communs pour garantir que l'équipe a des DevOps et des capacités d'observabilité; 2. Utilisez le mode Strangler pour remplacer progressivement, acheminer les nouvelles fonctions vers de nouveaux services via des passerelles API; 3. Utiliser la conception axée sur le domaine pour identifier les contextes limités, diviser les services en fonction des limites commerciales et isoler les bases de données; 4. Sélectionnez une méthode de communication appropriée, utilisez HTTP / REST pour les demandes de l'utilisateur et utilisez des messages asynchrones tels que AzureServiceBus pour les événements; 5. Assurer la cohérence des données de service croisé via la cohérence finale de l'événement, le mode SAGA et le mode d'obstruction; 6. Intégration précoce du Serilog, de l'OpenTelemétrie et d'autres outils pour construire la date

Quelle est la différence entre First () et FirstOrdeFault () dans C # linq? Quelle est la différence entre First () et FirstOrdeFault () dans C # linq? Sep 16, 2025 am 12:33 AM

First () ThrowsanExceptionIfNoElementsisfound, tandis que le perstordefault () returnsadefaultValue; useFirst () whenthesequenceisexpectiondTobenon-vice, etFirsorDefault () tohandleempty séquences.

Quels sont les différents modificateurs d'accès en C #? Quels sont les différents modificateurs d'accès en C #? Sep 21, 2025 am 01:43 AM

Les membres du public sont accessibles par n'importe quel code; 2. Private n'est accessible que dans la classe; 3. Protected permet l'accès aux classes et aux classes dérivées; 4. INTERNEL est limité à l'accès dans le même assemblage; 5.ProtectedInternal est une union de protégée et interne, utilisée pour l'accès à des classes dérivées ou à la même assemblée.

Comment créer et utiliser une annulation d'annulation en C #? Comment créer et utiliser une annulation d'annulation en C #? Sep 21, 2025 am 01:49 AM

Créez un annulation de l'annulation pour obtenir la réduction de l'annulation, qui est utilisée pour informer d'autres threads ou composants pour annuler l'opération. 2. Passez le jeton à une méthode asynchrone qui prend en charge l'annulation (comme task.run). La tâche peut vérifier périodiquement la demande d'annulation pour réaliser une résiliation gracieuse.

Comment utiliser la correspondance de motifs en C #? Comment utiliser la correspondance de motifs en C #? Sep 20, 2025 am 04:32 AM

PatternMatchinginc # isafeatuesedToCheckObjectSagainstpatterNSAndextractInformationCisely.1.TypepatterNSallowCheCkingAndcastingInOneStep, AsshownwithIf (ValueAsstringstr) .2

See all articles