Você está na página 1de 29

Enum

Entendendo Enum
O enum uma excelente estrutura para mapear valores sem a necessidade de uma tabela no banco de dados. A grande vantagem tornar o cdigo muito mais claro, principalmente nas regras de negcio. Um enum consiste de conjuntos de um nome e de um valor (inteiro, podendo o tipo "de baixo" ser byte, sbyte, short, long, unshort, unlong de acordo com a sua necessidade. (Luciano Carvalho)

Tabela de tipos

Vantagens Enum
Serve para substituir constantes nomeadas que so relacionadas mas ficam perdidas no cdigo. So simblicos, o que lhe permite trabalhar com valores integrais, mas usando um nome significativo contribuem para uma padronizao no desenvolvimento, facilitam a linha de raciocnio para uma determinada implementao deixam um cdigo muito limpo e fcil de ser compreendido.

Exemplo 1
enum eDias : byte { Dom, Seg, Ter, Qua, Qui, Sex, Sab }; class Program Antes de class { static void Main(string[] args) { Console.WriteLine(eDias.Dom); // imprime Dom Console.WriteLine((int)eDias.Dom); // imprime 0 } // neste caso Dom = 0, segunda = 1... enum eDias : byte { Dom=1, Seg, Ter, Qua, Qui, Sex, Sab }; // neste caso Seg seria = 2, Ter = 3 ...

Exemplo 2 utilizando variveis


enum eDias : byte { Dom, Seg, Ter, Qua, Qui, Sex, Sab }; class Program { static void Main(string[] args) {eDias umDia = eDias.Dom; Console.WriteLine(Dia da Semana <0-6>); string xDia = Console.ReadLine(); if xDia = 0 umDia = eDias.Dom; Console.WriteLine(umDia.ToString()); // mostra string } }

Exemplo 3
public class Carro { public Combustivel combustivel; } /// utilizando (Main) public enum Combustivel // declarado no program { Gasolina , lcool, Diesel , BioDiesel } class Program { static void Main(string[] args) { Carro meuCarro = new Carro(); meuCarro.combustivel = Combustivel.lcool; Console.WriteLine(meuCarro.combustivel.ToString());

Exemplo - Codificar a classe cliente


Cliente eCategoria categoria float CalculaDescto(float xvalor)

Procedimentos Main
Instanciar objeto Informar tipo de cliente Atribuir o enum a categoria do cliente de acordo com o tipo informado Informar valor de compra Dependendo do tipo do cliente mostrar o valor da compra com desconto ou mostrar que o cliente no tem desconto Mostrar a categoria atribuida

Declarao do enum
public enum eCategoria { Otimo=5, Bom=3, Caloteiro=0 }

StreamReader e StreamWriter
StreamReader e StreamWriter StreamWriter deriva do TextWriter, de forma anloga StreamReader deriva do TextReader, e definem mtodos que permitem a escrita e a leitura de dados textuais para um dado stream.

Mtodos TextWriter
Close(): fecha o Writer e liberta os recursos associados. Write(): escreve a linha para a stream de texto, sem new line no final da linha. WriteLine(): escreve a linha para a stream de texto, com new line no final da linha. WriteAllLines(): grava um array saltando linha por item gravado WriteAllText(): grava uma string; Flush(): limpa os buffers de escrita.

Mtodos TextReader
Read(): l informao da stream de texto ReadLine(): l uma linha de caracteres da stream e devolve a informao como uma string. ReadToEnd(): l todos os caracteres at ao final da stream e devolve essa infomao como uma nica string.

classe FileInfo
(system.IO) serve para ajudar a criar e destruir arquivo entre outras coisas como encapsular detalhe sobre arquivos (tamanhos, atributos, etc.). Mtodos:
CreateText = cria arquivo

Criando arquivos 1
public class EscreveTexto { public static void Main(string[] args) { FileInfo t = new FileInfo(@"c:\temp\t1.txt"); StreamWriter Txt =t.CreateText(); Txt.WriteLine("Gravou linha 1"); Txt.WriteLine("Gravou linha 2"); Txt.Write(Txt.NewLine); Txt.Close(); } }

Criando arquivos 2
1. Gravando um array string[] lines = {"Linha 1", "Linha 2", " Linha 3"}; System.IO.File.WriteAllLines(@"C:\Temp\Exemplo1 .txt", lines); 2. Gravando uma string string text = Um texto livre para gravacao "; System.IO.File.WriteAllText(@"C Temp\Exemplo2.txt ", text); Obs: se utilizarmos using System.IO no incio do programa, reduzimos o cdigo para referencia

Criando arquivos 2
3. Gravando algumas linhas using (StreamWriter arquivo = new StreamWriter(@"C:\temp\exmplo1.txt")) { foreach (string line in lines) { if (line.Contains("Linha 2") == false) { arquivo.WriteLine(line); } } } Obs: considerando termos declarado using System.IO este exemplo equivalente (com uma sintaxe um pouco mais complicada) ao Criando arquivos 1

Criando arquivos 2
4. Gravando em um arquivo existente using (StreamWriter arquivo = new StreamWriter(@"C:\temp\exemplo4.txt", true)) { arquivo.WriteLine(Linha 4"); }

Lendo arquivos Classe StreamReader


Mtodo File.OpenText() abre para leitura StreamReader re = File.OpenText (@"C;\temp\exemplo1.txt"); string input = null; while ((input = re.ReadLine()) != null) { Console.WriteLine(input); } re.Close(); // imprime o contedo do arquivo

Pesquisando string no arquivo


StreamReader re = File.OpenText (@"d:\teste\Exemplo1.txt"); string texto = re.ReadToEnd(); if (texto.Contains("Linha 2")) { Console.WriteLine("achou"); Console.ReadKey(); } else Console.WriteLine("no achou"); Console.ReadKey();

Pesquisando a posio de uma string


StreamReader re = File.OpenText (@"d:\teste\Exemplo1.txt"); string texto = re.ReadToEnd(); int x = texto.IndexOf("Linha 2"); Console.WriteLine("Posicao = "+x); Console.ReadKey();

Substituindo string
String Texto = "Uma lio de vida"; String TextoSubstituido = Texto.Replace("lio", "questo"); Console.WriteLine(TextoSubstituido); Console.ReadKey();

Verificar existncia de um arquivo


string arquivo = @"c:\temp\exemplo1.txt"; if(File.Exists(arquivo)) { Console.WriteLine("Arquivo existe!"); } else { Console.WriteLine("Arquivo inexistente!");}

Trabalho Bimestral Menu


Criar arquivo de agenda Ativar arquivo de agenda (nome arq) Incluir Nome Pesquisar nome Alterar telefone a partir de um nome dado Excluir um nome Listar a agenda na tela

Trabalho bimestral
Duplas podero ser formadas Aplicar conceitos de OO, tratamento de erros, comandos para tratamento de arquivos e strings Definir um objeto Agenda (contendo Nome e telefone) Crie os mtodos necessrios

Consulte
http://www.oficinadanet.com.br/artigo/1604/apre ndendo_a_utilizar_o_tipo_enum http://programatik.soucafecomleite.com.br/enum -com-texto http://www.linhadecodigo.com.br/artigo/2826/Tra tamento-de-excecoes-no-CSharp.aspx http://msdn.microsoft.com/ptbr/library/0yd65esw(VS.90).aspx http://msdn.microsoft.com/ptbr/library/8bh11f1k(VS.90).aspx

http://www.devmedia.com.br/post-6361Solucoes-rapidas-no-trabalho-comchar-e-string--VB-e-C-csharp-ParteIII.html http://www.codigofonte.net/dicas/csharp /317_manipulando-strings-no-c