Declaração Case em C# (Como funciona para desenvolvedores)
A instrução switch em C# oferece uma alternativa mais simplificada e legível a múltiplos blocos if-else. É vantajoso quando você tem uma variável que pode assumir um de vários valores distintos e precisa executar códigos diferentes com base no valor. A instrução switch avalia uma expressão e executa o código com base no valor correspondente, tornando-se parte integrante da tomada de decisões em seu código.
Embora as estruturas if-else sejam úteis para condições ou verificações simples, as instruções switch case se destacam ao lidar com verificações de condições mais complexas, especialmente aquelas baseadas em uma única variável ou expressão de correspondência de padrão. Elas proporcionam uma sintaxe mais limpa e compreensível em comparação com as instruções if, o que é crucial tanto para escrever quanto para manter o código.
Noções básicas da instrução Switch
O que é uma instrução switch?
Em C#, uma instrução switch é uma estrutura de controle usada para selecionar um entre vários caminhos de código a serem executados. A seleção é baseada no valor ou em uma expressão. É uma alternativa eficiente ao uso de múltiplas condições if-else, especialmente ao lidar com uma variável que pode ter vários valores distintos.
Sintaxe
A sintaxe básica de uma instrução switch é simples:
// 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): Isso especifica a variável ou expressão a ser avaliada.case value1: Estes são os diferentes valores ou condições que você verifica em relação à variável.break: Esta palavra-chave é usada para sair do bloco switch assim que um caso correspondente for executado.- Instrução
default: Este bloco é executado se nenhum dos casos especificados corresponder à variável.
Entendendo a instrução break
A instrução break no switch é crucial. Isso impede o comportamento de "fall-through", onde a execução passa para o caso subsequente mesmo que a condição de correspondência já tenha sido atendida. Cada bloco case normalmente termina com uma instrução break para garantir que apenas o código correspondente ao caso seja executado.
Comparando as instruções switch e if-else
Enquanto a estrutura da instrução if-else envolve verificar uma condição e executar um bloco de código se a condição for verdadeira, as instruções switch comparam uma única variável ou expressão com vários valores potenciais. Isso torna a instrução switch mais concisa e fácil de ler quando você tem muitas condições ou padrões de caso para verificar.
Exemplo: Usando uma instrução 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
Neste exemplo, o programa imprimirá "Três" como saída, já que o número corresponde ao caso 3.
O papel do caso padrão
Entendendo o valor padrão em um bloco switch
Em uma instrução switch, o caso padrão desempenha um papel crucial. Serve como uma opção genérica que é executada quando nenhum dos rótulos de caso especificados corresponde ao valor da expressão switch. Embora seja opcional, incluir um caso padrão é uma boa prática para lidar com valores inesperados ou desconhecidos.
Como e quando usar a instrução default
O caso padrão é usado quando você deseja executar um bloco de código caso nenhum dos casos específicos corresponda. Isso garante que a instrução switch sempre tenha um comportamento definido, independentemente da entrada. O caso padrão é declarado usando a palavra-chave default, seguida por dois pontos.
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
O caso padrão pode ser colocado em qualquer lugar dentro do bloco switch, mas normalmente é colocado no final para facilitar a leitura.
Exemplo: Instrução Switch com Caso Padrão
Considere um cenário em que você está avaliando um dia da semana:
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)
Neste exemplo, se day tiver um valor diferente de 1 a 7, o caso padrão será executado, definindo dayName como "Dia inválido".
Melhores práticas para o caso padrão
- Sempre inclua um valor padrão: mesmo que você acredite ter coberto todos os casos possíveis, inclua um caso padrão para lidar com valores imprevistos.
- Ações Significativas: Use o caso padrão para executar ações significativas, como registrar um erro, definir um valor padrão ou notificar o usuário sobre um valor desconhecido.
Recursos avançados do switch
Introdução às expressões switch em C
Com a evolução do C#, as expressões switch foram introduzidas como uma forma mais concisa e expressiva de lidar com múltiplas ramificações condicionais. Diferentemente das instruções switch tradicionais, as expressões switch retornam um valor e são mais simplificadas, tornando-as uma ferramenta poderosa na programação C# moderna.
Sintaxe das expressões Switch
A sintaxe de uma expressão switch em C# é uma forma mais compacta da instrução switch case. Eis uma estrutura básica:
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
'};
O símbolo de sublinhado ( _ ) representa o caso padrão em expressões switch, funcionando de forma semelhante ao bloco padrão em instruções switch tradicionais.
Exemplo: Usando uma expressão switch
Considere um cenário em que você precisa categorizar uma leitura de temperatura:
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)
Neste exemplo, a expressão switch categoriza sucintamente a temperatura, com o caso padrão ( _ ) cobrindo qualquer cenário não correspondido pelos outros casos.
Correspondência de padrões com expressões switch
As expressões switch em C# permitem a correspondência de padrões, tornando-as ainda mais versáteis. Você pode comparar tipos, valores ou até mesmo padrões:
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"
'};
Instrução switch em C# vs. Expressão switch
- Instrução Switch em C#: Tradicionalmente usada para executar diferentes blocos de código com base no valor de uma variável. É necessário um comando
breakpara cada caso. - Expressão Switch: Introduzida no C# 8.0, essa expressão oferece uma sintaxe mais concisa e é normalmente usada quando um valor precisa ser retornado com base em uma condição.
Integrando instruções switch com o IronPDF em C

Explore os recursos do IronPDF , uma biblioteca .NET para criar, editar e trabalhar com documentos PDF. Quando combinado com instruções ou expressões switch em C#, torna-se uma ferramenta poderosa para lidar com diversas operações relacionadas a PDFs com base em condições específicas. Essa integração é particularmente útil para tarefas que exigem tomada de decisão com base no conteúdo ou nos metadados do PDF.
A principal funcionalidade do IronPDF é a conversão de HTML para PDF com layouts e estilos , mantendo-os intactos. Esta ferramenta é ideal para criar PDFs a partir de conteúdo da web, incluindo relatórios, faturas e documentação. Arquivos HTML, URLs e strings HTML podem ser convertidos em arquivos 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
Exemplo: Marca d'água condicional com IronPDF e instruções switch
Vamos considerar um cenário em que você tem um documento PDF e deseja aplicar marcas d'água diferentes com base na contagem de páginas, de acordo com o número de páginas do documento. Veja como você pode fazer isso usando o IronPDF em combinação com uma instrução switch em 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
Segue o arquivo PDF resultante de uma página:

Conclusão
Neste tutorial, exploramos a instrução switch case em C#, uma forma fundamental de tomada de decisão em programação. Começamos por compreender a sua estrutura básica e comparámo-la com as instruções if-else tradicionais, destacando as suas vantagens em termos de legibilidade e simplicidade no tratamento de múltiplas condições.
Criamos estruturas de seleção simples, lidamos com vários cenários usando o caso padrão e exploramos recursos avançados, como expressões de seleção. A aplicação prática das instruções switch foi demonstrada por meio de um exemplo que integra o IronPDF para processamento dinâmico de PDFs, mostrando como as instruções switch podem ser uma ferramenta valiosa no conjunto de ferramentas de um programador.
O IronPDF oferece um período de teste gratuito para exploração de recursos , permitindo que você experimente suas funcionalidades. Para uso contínuo e acesso ao conjunto completo de ferramentas, as licenças do IronPDF partem de um modelo de preços competitivo, oferecendo uma solução abrangente para todas as suas necessidades de processamento de PDF em C#.
Perguntas frequentes
Como posso usar uma instrução switch para gerenciar o processamento de PDF em C#?
Você pode usar uma instrução switch para gerenciar o processamento de PDFs, executando diferentes operações com base em condições como número de páginas ou tipo de documento, utilizando uma biblioteca como o IronPDF.
Qual a diferença entre uma instrução switch e uma expressão switch em C#?
Uma instrução switch fornece uma maneira estruturada de lidar com múltiplas condições, com instruções break para evitar que o código continue a execução sem interrupção (fall-through), enquanto uma expressão switch é mais concisa, retorna um valor e elimina a necessidade de instruções break.
Por que o caso padrão é importante em instruções switch em C#?
O caso padrão é crucial, pois garante que valores inesperados sejam tratados adequadamente, evitando erros ao fornecer uma ação alternativa quando nenhum caso corresponder à expressão.
Como as expressões switch melhoram a legibilidade do código em C#?
As expressões switch melhoram a legibilidade do código, fornecendo uma sintaxe concisa para ramificações condicionais, permitindo que os desenvolvedores expressem a lógica de forma mais compacta, o que torna o código mais fácil de entender e manter.
É possível usar instruções switch para tratamento de erros em aplicações C#?
Sim, as instruções switch podem ser usadas para tratamento de erros, direcionando o programa para rotinas específicas de tratamento de erros com base em códigos ou condições de erro, melhorando assim a robustez das aplicações C#.
Qual é um exemplo prático de uso de uma instrução switch com o IronPDF?
Um exemplo prático é usar uma instrução switch para aplicar diferentes marcas d'água a um documento PDF com base na contagem de páginas ou em outros critérios, aproveitando o IronPDF para as tarefas de manipulação do PDF.
Como o IronPDF facilita as operações de PDF baseadas em switches?
O IronPDF facilita operações de PDF baseadas em comandos condicionais, fornecendo um conjunto robusto de ferramentas e métodos que podem ser acionados condicionalmente usando instruções switch para tarefas como conversão, edição e renderização de PDFs.
Quais são alguns casos de uso comuns para instruções switch no processamento de PDF?
Os casos de uso comuns incluem a aplicação de diferentes regras de processamento com base nos metadados do documento, como a aplicação de formatação ou conversões específicas com base no tipo ou conteúdo do documento.
Como o IronPDF pode ajudar na criação de código legível e de fácil manutenção com instruções switch?
O IronPDF auxilia oferecendo métodos abrangentes de manipulação de PDFs que podem ser organizados usando instruções switch, resultando em um código legível e de fácil manutenção devido à sua lógica estruturada.
Quais as vantagens que as instruções switch oferecem em relação aos blocos if-else na tomada de decisões?
As instruções switch oferecem uma estrutura mais organizada e menos propensa a erros para lidar com múltiplas condições discretas, melhorando a clareza do código e reduzindo a probabilidade de erros em comparação com longas cadeias if-else.




