Déclaration de cas C# (Comment ça fonctionne pour les développeurs)
La déclaration switch en C# offre une alternative plus simplifiée et lisible aux multiples blocs if-else. C'est bénéfique lorsque vous avez une variable qui peut prendre une des plusieurs valeurs distinctes, et vous devez exécuter un code différent basé sur la valeur. La déclaration switch évalue une expression et exécute un code basé sur la valeur correspondante, en faisant une partie intégrante de la prise de décision dans votre code.
Bien que les structures if-else soient utiles pour des conditions simples ou des vérifications, les déclarations case switch excellent lorsqu'il s'agit de vérifications de conditions plus complexes, en particulier celles basées sur une seule variable ou une expression de correspondance de modèle. Elles fournissent une syntaxe plus propre et plus compréhensible par rapport aux déclarations if, ce qui est essentiel tant pour l'écriture que pour la maintenance du code.
Les bases de la déclaration switch
Qu'est-ce qu'une déclaration switch ?
Une déclaration switch en C# est une structure de contrôle utilisée pour sélectionner un des nombreux chemins de code à exécuter. La sélection est basée sur la valeur ou une expression. C'est une alternative efficace à l'utilisation de multiples conditions if-else, en particulier lorsque vous traitez avec une variable qui peut avoir plusieurs valeurs distinctes.
Syntaxe
La syntaxe de base d'une déclaration switch est simple:
// Switch statement
switch (variable)
{
case value1:
// Code to execute if variable equals value1
break;
case value2:
// Code to execute if variable equals value2
break;
// More cases as needed
default:
// Code to execute if variable doesn't match any case
break;
}
// Switch statement
switch (variable)
{
case value1:
// Code to execute if variable equals value1
break;
case value2:
// Code to execute if variable equals value2
break;
// More cases as needed
default:
// Code to execute if variable doesn't match any case
break;
}
' Switch statement
Select Case variable
Case value1
' Code to execute if variable equals value1
Case value2
' Code to execute if variable equals value2
' More cases as needed
Case Else
' Code to execute if variable doesn't match any case
End Select
switch (variable): Ceci spécifie la variable ou l'expression à évaluer.case value1: Ce sont les différentes valeurs ou conditions que vous vérifiez par rapport à la variable.break: Ce mot-clé est utilisé pour sortir du bloc switch une fois qu'un cas correspondant est exécuté.defaultinstruction : Ce bloc s'exécute si aucun des cas spécifiés ne correspond à la variable.
Comprendre l'instruction break
L'instruction break dans le switch est cruciale. Elle empêche le comportement de "fall through", où l'exécution passe au case suivant même si la condition correspondante est déjà respectée. Chaque bloc case se termine généralement par une instruction break pour garantir que seul le code sous le case correspondant est exécuté.
Comparer la déclaration switch et les déclarations if-else
Alors que la structure de la déclaration if-else implique de vérifier une condition et d'exécuter un bloc de code si la condition est vraie, les déclarations switch comparent une seule variable ou expression à plusieurs valeurs potentielles. Ceci rend la déclaration switch plus concise et plus facile à lire lorsque vous avez beaucoup de conditions ou de modèles à vérifier.
Exemple : utiliser une déclaration switch
int number = 3;
switch (number)
{
case 1:
Console.WriteLine("One");
break;
case 2:
Console.WriteLine("Two");
break;
case 3:
Console.WriteLine("Three");
break;
default:
Console.WriteLine("Other Number"); // Print to console
break;
}
int number = 3;
switch (number)
{
case 1:
Console.WriteLine("One");
break;
case 2:
Console.WriteLine("Two");
break;
case 3:
Console.WriteLine("Three");
break;
default:
Console.WriteLine("Other Number"); // Print to console
break;
}
Dim number As Integer = 3
Select Case number
Case 1
Console.WriteLine("One")
Case 2
Console.WriteLine("Two")
Case 3
Console.WriteLine("Three")
Case Else
Console.WriteLine("Other Number") ' Print to console
End Select
Dans cet exemple, le programme imprimera "Trois" en sortie puisque le nombre correspond au case 3.
Le rôle du case default
Comprendre le default dans un bloc switch
Dans une déclaration switch, le case default joue un rôle crucial. Il sert d'option de secours qui est exécutée quand aucun des labels de case spécifiés ne correspond à la valeur de l'expression switch. Bien qu'il soit optionnel, inclure un case default est une bonne pratique pour gérer les valeurs inattendues ou inconnues.
Comment et quand utiliser l'instruction default
Le case default est utilisé lorsque vous souhaitez exécuter un bloc de code si aucun des cas spécifiques ne correspond. Il garantit que la déclaration switch a toujours un comportement défini, quelle que soit l'entrée. Le cas par défaut est déclaré à l'aide du mot-clé default, suivi de deux points.
default:
// Code to execute if no case matches
break;
default:
// Code to execute if no case matches
break;
Case Else
' Code to execute if no case matches
break
Le case default peut être placé n'importe où dans le bloc switch, mais il est généralement placé à la fin pour la lisibilité.
Exemple : déclaration switch avec case default
Considérons un scénario où vous évaluez un jour de la semaine :
int day = 5;
string dayName;
switch (day)
{
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
case 3:
dayName = "Wednesday";
break;
case 4:
dayName = "Thursday";
break;
case 5:
dayName = "Friday";
break;
case 6:
dayName = "Saturday";
break;
case 7:
dayName = "Sunday";
break;
default:
dayName = "Invalid day";
break;
}
Console.WriteLine(dayName);
int day = 5;
string dayName;
switch (day)
{
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
case 3:
dayName = "Wednesday";
break;
case 4:
dayName = "Thursday";
break;
case 5:
dayName = "Friday";
break;
case 6:
dayName = "Saturday";
break;
case 7:
dayName = "Sunday";
break;
default:
dayName = "Invalid day";
break;
}
Console.WriteLine(dayName);
Dim day As Integer = 5
Dim dayName As String
Select Case day
Case 1
dayName = "Monday"
Case 2
dayName = "Tuesday"
Case 3
dayName = "Wednesday"
Case 4
dayName = "Thursday"
Case 5
dayName = "Friday"
Case 6
dayName = "Saturday"
Case 7
dayName = "Sunday"
Case Else
dayName = "Invalid day"
End Select
Console.WriteLine(dayName)
Dans cet exemple, si day a une valeur autre que 1 à 7, le cas par défaut est exécuté, définissant dayName sur " Jour invalide ".
Meilleures pratiques pour le case default
- Toujours inclure une valeur par défaut : même si vous pensez avoir couvert tous les cas possibles, incluez une valeur par défaut pour gérer les valeurs imprévues.
- Actions significatives : Utilisez le cas par défaut pour effectuer des actions significatives, comme consigner une erreur, définir une valeur par défaut ou informer l'utilisateur d'une valeur inconnue.
Fonctionnalités avancées du switch
Introduction aux expressions switch en C
Avec l'évolution de C#, les expressions switch ont été introduites comme une manière plus concise et expressive de gérer plusieurs branches conditionnelles. Contrairement aux déclarations switch traditionnelles, les expressions switch retournent une valeur et sont plus rationalisées, en faisant un outil puissant dans la programmation moderne C#.
Syntaxe des expressions switch
La syntaxe d'une expression switch en C# est une forme plus compacte de la déclaration case switch. Voici une structure de base :
var result = variable switch
{
value1 => result1,
value2 => result2,
_ => defaultResult
};
var result = variable switch
{
value1 => result1,
value2 => result2,
_ => defaultResult
};
'INSTANT VB TODO TASK: The following 'switch expression' was not converted by Instant VB:
'var result = variable switch
'{
' value1 => result1,
' value2 => result2,
' _ => defaultResult
'};
Le symbole underscore (_) représente le case default dans les expressions switch, fonctionnant de manière similaire au bloc default dans les déclarations switch traditionnelles.
Exemple : utilisation d'une expression switch
Considérez un scénario où vous devez catégoriser une lecture de température :
int temperature = 25;
string weatherDescription = temperature switch
{
<= 0 => "Freezing",
< 20 => "Cold",
< 30 => "Mild",
_ => "Hot"
};
Console.WriteLine(weatherDescription);
int temperature = 25;
string weatherDescription = temperature switch
{
<= 0 => "Freezing",
< 20 => "Cold",
< 30 => "Mild",
_ => "Hot"
};
Console.WriteLine(weatherDescription);
Dim temperature As Integer = 25
'INSTANT VB TODO TASK: The following 'switch expression' was not converted by Instant VB:
'string weatherDescription = temperature switch
'{
' <= 0 => "Freezing",
' < 20 => "Cold",
' < 30 => "Mild",
' _ => "Hot"
'};
Console.WriteLine(weatherDescription)
Dans cet exemple, l'expression switch catégorise succinctement la température, le case default (_) couvrant tout scénario non répondu par les autres cas.
Correspondance de modèles avec les expressions switch
Les expressions switch en C# permettent la correspondance de modèles, ce qui les rend encore plus polyvalentes. Vous pouvez faire correspondre des types, des valeurs ou même des modèles :
object obj = // some object;
string description = obj switch
{
int i => $"Integer: {i}",
string s => $"String: {s}",
_ => "Unknown type"
};
object obj = // some object;
string description = obj switch
{
int i => $"Integer: {i}",
string s => $"String: {s}",
_ => "Unknown type"
};
'INSTANT VB TODO TASK: The following 'switch expression' was not converted by Instant VB:
'object obj = string description = obj switch
'{
' int i => $"Integer: {i}",
' string s => $"String: {s}",
' _ => "Unknown type"
'};
Déclaration switch C# vs expression switch
- Instruction Switch en C# : traditionnellement utilisée pour exécuter différents blocs de code en fonction de la valeur d'une variable. Elle nécessite une instruction break pour chaque case.
- Expression Switch : introduite dans C# 8.0, elle offre une syntaxe plus concise et est généralement utilisée lorsqu'une valeur doit être renvoyée en fonction d'une condition.
Intégrer les instructions switch avec IronPDF en C

IronPDF est une bibliothèque PDF .NET pour créer, éditer et travailler avec des documents PDF. Lorsqu'elle est combinée avec des déclarations ou expressions switch C#, elle devient un outil puissant pour gérer différentes opérations liées au PDF basées sur des conditions spécifiques. Cette intégration est particulièrement utile pour les tâches nécessitant une prise de décision basée sur le contenu ou les métadonnées du PDF.
La fonctionnalité clé d'IronPDF est de convertir HTML en PDF avec les mises en page et styles, tout en conservant les mises en page et les styles intacts. C'est idéal pour créer des PDF à partir de contenu web, y compris les rapports, les factures et la documentation. Les fichiers HTML, les URL et les chaînes HTML sont tous convertibles en fichiers PDF.
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
Exemple : filigrane conditionnel avec IronPDF et déclarations switch
Considérons un scénario où vous avez un document PDF, et vous souhaitez appliquer différents filigranes selon le nombre de pages en fonction du nombre de pages dans le document. Voici comment vous pouvez réaliser cela avec IronPDF en combinaison avec une déclaration switch C# :
using IronPdf;
class Program
{
static void Main(string[] args)
{
IronPdf.License.LicenseKey = "Your-License-Code";
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
// Define different watermark HTML for each case
string watermarkHtmlOnePage = "<div style='color:red;'>One Page Document</div>";
string watermarkHtmlTwoPage = "<div style='color:blue;'>Two Page Document</div>";
switch (pdf.PageCount)
{
case 1:
// Apply watermark for one-page document
pdf.ApplyWatermark(watermarkHtmlOnePage);
break;
case 2:
// Apply watermark for two-page documents
pdf.ApplyWatermark(watermarkHtmlTwoPage);
break;
default:
// Apply a default watermark for other cases
pdf.ApplyWatermark("<div style='color:green;'>Multiple Page Document</div>");
break;
}
// Save the watermarked PDF
pdf.SaveAs("watermarked.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
IronPdf.License.LicenseKey = "Your-License-Code";
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
// Define different watermark HTML for each case
string watermarkHtmlOnePage = "<div style='color:red;'>One Page Document</div>";
string watermarkHtmlTwoPage = "<div style='color:blue;'>Two Page Document</div>";
switch (pdf.PageCount)
{
case 1:
// Apply watermark for one-page document
pdf.ApplyWatermark(watermarkHtmlOnePage);
break;
case 2:
// Apply watermark for two-page documents
pdf.ApplyWatermark(watermarkHtmlTwoPage);
break;
default:
// Apply a default watermark for other cases
pdf.ApplyWatermark("<div style='color:green;'>Multiple Page Document</div>");
break;
}
// Save the watermarked PDF
pdf.SaveAs("watermarked.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
IronPdf.License.LicenseKey = "Your-License-Code"
Dim pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Define different watermark HTML for each case
Dim watermarkHtmlOnePage As String = "<div style='color:red;'>One Page Document</div>"
Dim watermarkHtmlTwoPage As String = "<div style='color:blue;'>Two Page Document</div>"
Select Case pdf.PageCount
Case 1
' Apply watermark for one-page document
pdf.ApplyWatermark(watermarkHtmlOnePage)
Case 2
' Apply watermark for two-page documents
pdf.ApplyWatermark(watermarkHtmlTwoPage)
Case Else
' Apply a default watermark for other cases
pdf.ApplyWatermark("<div style='color:green;'>Multiple Page Document</div>")
End Select
' Save the watermarked PDF
pdf.SaveAs("watermarked.pdf")
End Sub
End Class
Voici le fichier PDF de sortie d'une page :

Conclusion
Dans ce tutoriel, nous avons exploré la déclaration switch case en C#, une forme fondamentale de prise de décision en programmation. Nous avons commencé par comprendre sa structure de base et l'avons comparée avec les déclarations if-else traditionnelles, mettant en avant ses avantages en termes de lisibilité et de simplicité pour gérer de multiples conditions.
Nous avons créé des cases switch simples, géré divers scénarios avec le case default, et exploré des fonctionnalités avancées comme les expressions switch. L'application réelle des déclarations switch a été démontrée à travers un exemple intégrant IronPDF pour le traitement dynamique de PDF, montrant comment les déclarations switch peuvent être un outil précieux dans la boîte à outils d'un programmeur.
IronPDF offre un essai gratuit pour explorer les fonctionnalités, vous permettant d'explorer ses caractéristiques et fonctionnalités. Pour une utilisation continue et un accès à sa suite complète d'outils, les licences IronPDF commencent à partir d'un modèle de tarification compétitif, fournissant une solution complète pour tous vos besoins de traitement PDF en C#.
Questions Fréquemment Posées
Comment puis-je utiliser une instruction switch pour gérer le traitement de PDF en C# ?
Vous pouvez utiliser une instruction switch pour gérer le traitement de PDF en exécutant différentes opérations PDF en fonction des conditions, telles que le nombre de pages ou le type de document, en utilisant une bibliothèque comme IronPDF.
Quelle est la différence entre une instruction switch et une expression switch en C# ?
Une instruction switch offre un moyen structuré de gérer plusieurs conditions avec des instructions break pour éviter le « fall-through », tandis qu'une expression switch est plus concise, renvoie une valeur, et élimine le besoin d'instructions break.
Pourquoi le cas par défaut est-il important dans les instructions switch en C# ?
Le cas par défaut est crucial car il assure que les valeurs inattendues sont gérées de manière élégante, en empêchant les erreurs en fournissant une action de secours quand aucun cas ne correspond à l'expression.
Comment les expressions switch améliorent-elles la lisibilité du code en C# ?
Les expressions switch améliorent la lisibilité du code en offrant une syntaxe concise pour le branchement conditionnel, permettant aux développeurs d'exprimer la logique de manière plus compacte, ce qui rend le code plus facile à comprendre et à maintenir.
Les instructions switch peuvent-elles être utilisées pour la gestion des erreurs dans les applications C# ?
Oui, les instructions switch peuvent être utilisées pour la gestion des erreurs en dirigeant le programme vers des routines spécifiques de gestion d'erreurs basées sur des codes d'erreurs ou des conditions, améliorant ainsi la robustesse des applications C#.
Quel est un exemple pratique d'utilisation d'une instruction switch avec IronPDF ?
Un exemple pratique est d'utiliser une instruction switch pour appliquer différents filigranes à un document PDF en fonction de son nombre de pages ou d'autres critères, en using IronPDF pour les tâches de manipulation de PDF.
Comment IronPDF facilite-t-il les opérations PDF basées sur des switch ?
IronPDF facilite les opérations PDF basées sur des switch en fournissant un ensemble robuste d'outils et de méthodes qui peuvent être déclenchés conditionnellement à l'aide d'instructions switch pour des tâches telles que la conversion, l'édition et le rendu de PDF.
Quelles sont les utilisations courantes des instructions switch dans le traitement de PDF ?
Les cas d'utilisation courants incluent l'application de différentes règles de traitement basées sur les métadonnées du document, telles que l'application de formatages ou de conversions spécifiques en fonction du type ou du contenu du document.
Comment IronPDF peut-il aider à créer du code lisible et maintenable avec des instructions switch ?
IronPDF aide en offrant des méthodes complètes de manipulation de PDF qui peuvent être organisées à l'aide d'instructions switch, aboutissant à un code à la fois lisible et maintenable grâce à sa logique structurée.
Quels avantages les instructions switch offrent-elles par rapport aux blocs if-else dans la prise de décision ?
Les instructions switch offrent une structure plus organisée et moins sujette aux erreurs pour traiter de multiples conditions discrètes, améliorant la clarté du code et réduisant la probabilité d'erreurs par rapport aux longues chaînes if-else.




