Documente Academic
Documente Profesional
Documente Cultură
CSHARP (C#)
TUDO OBJETO;
Cdigo
organizado em namespaces;
Nvel
VARIVEIS
Tipo C# bool byte char Tipo .NET System.Boolean System.Byte System.Char Faixa de dados True ou False -127 a 128 U + 0000 a U + ffff
decimal double
float int long object short string Uint Ulong ushort
System.Decimal System.Double
System.Single System.Int32 System.Int64 System.Object System.Int16 System.String System.UInt32 System.UInt64 System.UInt16
ESCOPO DE VARIVEIS
Declarao Escopo
private
internal
protected
protected internal
public
DECLARAO DE VARIVEIS:
Declarao de variveis:
public int Codigo; private string Nome;
Inicializao de variveis:
public int Codigo; Codigo = 2;
ou
public int Codigo = 2;
ESTRUTURA DE UM PROGRAMA
Um
Namespaces; Tipos: classes, estruturas, interfaces, delegaes, enums; Membros: constantes, campos, mtodos, propriedades, indexadores, eventos, operadores, construtores; Outros: comentrios e instrues.
ESTRUTURA DE UM PROGRAMA
using System; using System.Windows.Forms;
namespace WindowsApplication1 {
public class Form1 : System.Windows.Forms.Form { // declarao de variveis private bool salvou = false;
public Form1() { InitializeComponent(); } protected override void Dispose( bool disposing ) { // cdigo do mtodo Dispose } private void InitializeComponent() { // aqui esto os mtodos requeridos para a montagem dos componentes na tela }
} }
CLASSE
class <nome da classe> { // membros da classe }
Palavra-chave nenhum ou internal public abstract ou internal abstract Acesso classe A classe acessvel apenas dentro do projeto atual A classe acessvel de qualquer lugar A classe acessvel apenas no projeto atual, no podendo ser instanciada, apenas derivada.
public abstract
A classe acessvel apenas no projeto atual, no podendo ser derivada, apenas instanciada
public sealed
CLASSE
internal class MinhaClasse { // membros da classe } public class MinhaClasse { // membros da classe pblica } public abstract class MinhaClasse { // membros da classe abstrata } public sealed class MinhaClasse { // membros da classe }
CLASSE
INTERFACES
Conjunto de mtodos e propriedades pblicos que so agrupados para envolver funcionalidades especficas. Descrevem um grupo de comportamentos relacionados que podem pertencer a qualquer classe ou estrutura;
INTERFACE
INTERFACE
using System; namespace ConsoleApplication1 { interface IAnimal { // Propriedades string ClasseBiologica { get; set; } string Alimentacao { get; set; } // Mtodo Animal IncluirAnimal(int Codigo); } }
INTERFACES
Apenas
define os membros;
OBJETOS
So
instncias de classe;
definidos
atravs
de
classes
OBJETOS
public class minhaClasse { public Cliente (int codigo) { //Construtor da classe Cliente } public Cliente (int codigo, string nome) { //Construtor da classe Cliente } public class TesteCliente { //Criando um objeto Cliente com valores Cliente meuCliente = new Cliente(16, "Maria da Silva"); } }
CONSTRUTORES
padro
atravs
de
CONSTRUTORES
{
public bool estaAtivo;
}
}
CONSTRUTORES
DESTRUTORES
DESTRUTORES
A chamada gerenciada pelo Garbage Collector; Podemos forar a chamada ao coletor de lixo:
class ContaCorrente { ~ ContaCorrente() // destructor { // limpando as instrues
} }
PROPRIEDADES
Fornecem acesso aos dados dos objetos Permite a manipulao dos dados, atribuindo ou recuperando valores Acessores:
PROPRIEDADES
Sintaxe
<escopo> <modificadores> <tipo do dado> <nome da propriedade> { get { // Varivel que ser retornada } set { // Cdigo para modificar a varivel } }
Argumentos: <escopo> - define o nvel de visibilidade da propriedade <modificadores> - indica o nvel de acessibilidade da propriedade. opcional; <tipo do dado> - o tipo do dado (int, string, etc) que a propriedade est manipulando; <nome da propriedade> - o nome que o desenvolvedor d para a propriedade e atravs do qual ela ser acessada;
PROPRIEDADES
Modificadores de Acesso:
Significado
Modificador
New
usado para esconder explicitamente um membro herdado. Para esconder esse membro, declare-o na classe derivada usando o mesmo nome que est na classe base, usando o modificador new.
Static
Indica que a propriedade no pode ser referenciada atravs de uma instncia. Deve ser referenciada atravs de um tipo de dado.
Virtual
Indicando que um membro virtual, estamos permitindo que esse membro seja sobrescrito nas classes derivadas (override)
Abstract
Indica que o membro no pode ser herdado, ou seja, usado apenas pela classe base.
Override
PROPRIEDADES
Exemplo
public virtual String Nome { get { return nome; } set { nome = value; } } public Int Codigo { get { return codigo; } set { codigo = value; } }
EVENTOS
EVENTOS
Manipulador de Evento ou Event Handler: so mtodos que associam o objeto a determinado evento; indica ao programa como agir na resposta a um evento
EVENTOS
Exemplo
public delegate void ButtonEventHandler(); class TestButton {
EVENTOS
Continuao
// Criando uma instncia da classe TestButton TestButton mb = new TestButton(); // Especificando o mtodo que ir ser disparado pelo evento Click() mb.OnClick += new ButtonEventHandler(TestHandler); // Especificando um mtodo annimo adicional mb.OnClick += delegate {System.Console.WriteLine("Hello, World!"); }; // Disparando o evento mb.Click();
MTODOS
So as funes que os objetos possuem, ou seja, do acesso as funcionalidades do objeto.
MTODOS
Sintaxe
<escopo> <tipo de retorno> <nome do mtodo> (<parmetros>) { // cdigo do mtodo }
MTODOS
Exemplo
MTODOS
Sobrecarga de mtodos Podemos criar diferentes assinaturas para um mtodos, ou seja, podemos criar parmetros diferentes para o mesmo mtodo
NOTA: a assinatura de um mtodo composta pelo nome do mtodo, pelos tipos e posies dos parmetros
MTODOS
Exemplo
public void IncluirCliente (int Codigo) { // cdigo do mtodo } public void IncluirCliente (int Codigo, string Nome) { // cdigo do mtodo } public void IncluirCliente (int Codigo, string Nome, string Cidade, string Estado) { // cdigo do mtodo }
MTODOS
PASSAGEM DE PARMETRO
Podemos passar parmetros para os mtodos por valor ou por referncia Note que no Visual Basic temos o ByVal e ByRef No C#, usamos o ref e o out, para passar dados tipo valor por referncia e dados tipo referncia por valor
PASSAGEM DE PARMETRO
ARRAYS
um grupo de posies de memria adjacentes que tm o mesmo nome e tipo, permitindo o acesso indexado a valores individuais.
uma lista indexada de variveis em uma nica varivel do tipo array
ARRAYS
Sintaxe
Argumentos: <tipo base> - qualquer tipo de varivel (int, string etc); <nome> o nome da varivel tipo array que est sendo criada.
ARRAYS
ARRAYS
Exemplo
private void Form1_Load(object sender, System.EventArgs e) { int i; int [] meuArray = new int[5]; // executar o cdigo dentro do for enquanto i for menor que o tamanho do array
COLEES
COLEES
So fortemente tipadas, ou seja, especficas para o objeto que queremos trabalhar Interfaces importantes:
IEnumerable: fornece a capacidade de fazer um loop pelos itens de uma coleo; ICollection: fornece capacidade de obter o nmero de itens em uma coleo e copiar itens em um tipo arrays simples; IList: fornece uma lista de itens para uma coleo juntamente com as capacidades para acessar estes itens, e algumas outras capacidades bsicas relacionadas a lista de itens. IDictionary: semelhante a IList, mas fornece uma lista de itens acessvel por meio de um valor-chave em vez de por um ndice.
COLEES
Sintaxe
ArrayList meuArrayList = new ArrayList(); ArrayList meuArrayList = new ArrayList(); SortedList minhaSorted = new SortedList(); SortedList minhaSorted = new SortedList();
COLEES
Exemplo
private void Form1_Load(object sender, System.EventArgs e) { // declarando um ArrayList ArrayList meuArrayList = new ArrayList(); //adicionando dados ao ArrayList meuArrayList.Add("Banana"); meuArrayList.Add("Ma"); meuArrayList.Add("Laranja"); meuArrayList.Add(1); meuArrayList.Add("Uva"); meuArrayList.Add("Morango"); meuArrayList.Add(1.23); // mostrando o tipo dos itens que foram inseridos no ArrayList foreach (Object item in meuArrayList) { textBox1.Text = textBox1.Text + (item.GetType()).ToString(); }
COLEES
Continuao
//mostrando o contedo do ArrayList // mostrando o tipo dos itens que foram inseridos no ArrayList foreach (Object item in meuArrayList) { textBox1.Text = textBox1.Text + item.ToString(); } //Removendo um elemento especfico usando o mtodo Remove meuArrayList.Remove("Banana"); //removendo um elemento usando o RemoveAt (por ndice) meuArrayList.RemoveAt(2); // Inserindo um objeto numa posio especfica. Note que o Add // adiciona o elemento no final do Array, e no na posio especfica meuArrayList.Insert(2, "Mamo"); // Removendo todos os itens do arrayList meuArrayList.Clear(); }
COLEES
Adicionando itens
Estruturas Condicionais: so aquelas que permitem o desvio do fluxo do programa de acordo com uma condio
Estrutura de Repetio: fazem que determinado bloco de cdigo se repita at que uma condio seja ou se torne verdadeira. Podem ser usados de vrias maneiras. Veremos as formas mais usadas
ESTRUTURAS CONDICIONAIS
If...
Else... Essa instruo executa um comando ou uma srie de comandos de acordo com uma condio que colocada nela.
if { } else { <comandos> } (<condio>) <comandos>
Argumentos:
<condio> - a condio que deve ser satisfeita para que os comandos dentro da estrutura sejam executados;
<comandos> - o comando que deve ser executado caso a condio seja satisfeita.
ESTRUTURAS CONDICIONAIS
Exemplo
if (nome == "Maria da Silva") { if (codigo = 2) { if (status == "ativo") { Console.WriteLine("O cliente {0} est ativo", nome); } } } else { Console.WriteLine("O nome no Maria da Silva"); }
ESTRUTURAS CONDICIONAIS
If... Else If... Deve ser utilizada quando mltiplas condies forem testadas
if { (<condio>) <comandos> } else if (<condio>) { <comandos> } else if (<condio>) { <comandos> }
ESTRUTURAS CONDICIONAIS
Switch Parecida com o comando If... Else if, pois possibita o teste de mltiplas condies
ESTRUTURAS CONDICIONAIS
Exemplo
switch (cod) { case 1: Console.WriteLine("Departamento break; case 2: Console.WriteLine("Departamento break; case 3: Console.WriteLine("Departamento break; case 4: Console.WriteLine("Departamento break; }
Financeiro");
Comercial");
de Desenvolvimento");
de Suporte ao Cliente");
ESTRUTURAS DE REPETIO
For O comando for faz com que o cdigo seja executado por um nmero de vezes determinado em sua estrutura
Argumentos: <inicializao> - o valor de inicializao da varivel contador; <condio> - a condio para continuar a repetio do cdigo; <operao> - a operao a ser realizada ao final de cada ciclo do for.
ESTRUTURAS DE REPETIO
Exemplo
int i; for (i = 0; i <= 10; i++) { Console.WriteLine("Nmero: {0} ", i); }
ESTRUTURAS DE REPETIO
Foreach O comando foreach usado para percorrer variveis do tipo Array, ArrayList, SortedList, etc. Ele enumera os objetos de uma coleo e percorre por todos eles
foreach (<tipo> <identificador> in <expresso>) { <cdigo a ser repetido> } Argumentos: <tipo> - o tipo do identificador; <identificador> - a varivel que representa o elemento da coleo; <expresso> - uma coleo de objetos (array, arrayList etc)
ESTRUTURAS DE REPETIO
Exemplo
SortedList minhaLista = new SortedList(); minhaLista.Add("Daniela"); minhaLista.Add("Mariana"); minhaLista.Add("Carlos"); foreach (Object item in minhaLista()) { Console.WriteLine("Nome: {0}", item.ToString); }
ESTRUTURAS DE REPETIO
Do... While Do - o cdigo executado ao menos uma vez While pode ou no ser executado ao menos uma vez
do { <cdigo a ser repetido> } while (<condio de continuidade) while (<condio de continuidade) { <cdigo a ser repetido> } Argumentos: <condio de continuidade> - a condio que faz com que o cdigo do seja executado novamente ou no;
ESTRUTURAS DE REPETIO
Exemplo
int i = 10; do { Console.WriteLine("Nmero: {0}", i); i ++; } while (i < 10); // o nmero ser impresso 1 vez
while (i < 10) { Console.WriteLine("Nmero: {0}", i); i ++; } // o nmero no ser impresso
TRATAMENTOS DE ERROS
Usamos o bloco Try... Catch.. Para o tratamento de excees Quando ocorre uma exceo, um objeto herdado da classe System.Exception criado para representar a exceo
TRATAMENTOS DE ERROS
TRATAMENTOS DE ERROS
Sintaxe
try { ...
TRATAMENTOS DE ERROS
try { // chama o mtodo que exclui um domnio servicos.ExcluirDominio(dominio.ObjectID); // limpa todos os campos clearFields();
Exemplo
} catch (Exception ex) { // exibe mensagem ao usurio indicando erro durante a tentativa de excluso MessageBox.Show("No foi possvel excluir o domnio virtual." + ex.Message, this.Tag.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error); }