SlideShare une entreprise Scribd logo
1  sur  54
Télécharger pour lire hors ligne
Conceitos Introdutórios
Hélder Oliveira helderjmo@gmail.com
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Introdução à .net Framework
• Bases de Programação em C#
• Programação Orientada a Objectos em C#
• O essencial da plataforma .net
• Formularios Windows
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• A Arquitectura
• Common Language Runtime
• .NET Class Library
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
C# VB .net J# ...
Windows
ASP .net
Web Controls
Web Services
Windows Forms
Common Language Runtime (CLR)
.NET Framework Class Library (FCL)
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Máquina Virtual
– Implementação da Microsoft da
especificação Common Language
Infrastructure (CLI)
• Compilador JIT (Just in time)
– Traduz código intermédio MSIL
em código nativo
– Possui mecanismos de
optimização da compilação
• Garbage Collection
• Gestão de Thread’s
• Exception Handling
C# Compiler
VB Compiler
J# Compiler
...
(outros)
MSIL JIT
Native
Code
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Especificação desenvolvida
pela Microsoft
• Define todo o ambiente se
suporte a linguagens de alto
nível
• Especifica essencilamente
quatro aspectos:
– Common Type System (CTS)
– Metadata
– Common Language
Specification (CLS)
– Virtual Execution System
(VES)
Uniformização e Licenciamento:
 Standard ECMA-335, Common
Language Infrastructure (CLI)
 ISO/IEC 23271, Common Language
Infrastructure
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Inclui a Base Class Library
• Incluí classes próprias da
Microsoft
• Inclui uma um vasto
número de funcionalidades
comuns
• Facilita o trabalho ao
programador
Base Classes Library (BCL)
Exemplos de aplicação
• Manipulação de Ficheiros
• Imagem e Desenho
• Interacção com Bases de Dados
• Manipulação de documentos XML
• Comunicações
• Web
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Introdução
• Tipos de dados
• Variáveis
• Constantes
• Controlo de fluxo
• Arrays Unidimensionais
• Arrays Multidimensionais
• Jagged Arrays
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• O Primeiro programa
using System;
namespace PrimeiroPrograma
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("O meu 1o programa em c#");
}
}
}
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Tipos Numéricos
Nome Tamanho
(em bytes)
Gama Sinal
byte 1 0 a 255 Não
sbyte 1 -128 a 127 Sim
short 2 -32 768 a 32 767 Sim
ushort 2 0 a 65 535 Não
int 4 -2 147 483 648 a 2 147 483 648 Sim
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Tipos Numéricos (continuação)
Nome Tamanho
(em bytes)
Gama Sinal
uint 4 0 a 4 294 967 295 Não
long 8
-9 223 372 036 854 775 808 a
9 223 372 036 854 775 808
Sim
ulong 8 0 a 18 446 744 073 709 551 616 Não
float 4 ±1.5 × 10−45 a ±3.4 × 1038 Sim
double 8 ±5.0 × 10−324 a ±1.7 × 10308 Sim
decimal 16 ±1.0 × 10−28 a ±7.9 × 1028
Sim
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Tipo Lógico
Nome Tamanho
(em bytes)
Gama
bool 1 true ou false
Caracteres
Nome Tamanho
(em bytes)
Descrição
char 2 Representa um caracter (letra)
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
char char1 = 'X'; // Caracter literal
char char2 = 'x0058'; // Hexadecimal
char char3 = (char)88; // Cast de valor do tipo inteiro
char char4 = 'u0058'; // Unicode
char char5 = '''; // Sequência de escape
Caracteres – Exemplos de Utilização
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Caracteres – Sequências de Escape
Seq. Descrição
’ Plica
” Aspa
 Barra para trás
0 Valor nulo
a Som (beep)
v Tabulação Vertical
Seq. Descrição
b Backspace
f Form Feed
n Nova linha
r Ir para o inicio da linha
t Tabulação horizontal
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Cadeias de Caracteres (Strings)
• São objectos
• Ocupam sempre um mínimo de 20 bytes
• Uma string é representada, em código, através de aspas
altas (“”)
string str = "Representação de uma string.";
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Podem ser declaradas em
qualquer parte do código
• É boa prática respeitar as
convenções de nomes para
variáveis.
• Uma variável deve ser sempre
inicializada antes de uzada
Convenções de Nomes:
www.irritatedvowel.com/Programming/Standards.aspx
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Úteis para representar
valores que não mudam ao
longo do código
• São declaradas através do
uso do termo const
• Devem ser sempre
inicializadas ao mesmo
tempo quesão declaradas
• Podem ser declaradas em
qualquer ponto do código
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Precedência Operador Descrição
Primária
(expressão) Agrupamento de expressões
++ ou -- Pós-incrementação ou pós-decrementação
Unária
+ ou - Sinal numérico
! Negação
~ Complemento
++ ou -- Pré-incrementação ou pré-decrementação
(tipo) Cast
Multiplicativa
* Multiplicação
/ Divisão
% Resto
Aditiva
+ Adição
- Subtracção
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Precedência Operador Descrição
Deslocamento
<< Deslocamento à esquerda
>> Deslocamento à direita
Relacional
< Comparação “menor que”
> Comparação “maior que”
<= Comparação “menor ou igual que”
=> Comparação “maior ou igual que”
is Comparação de tipos de dados
Igualdade
== Teste de igualdade
!= Teste de diferença
Operações
lógicas
binárias
& And binário
^ Xor binário
| Or binário
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Precedência Operador Descrição
Operações
lógicas sobre
expressões
&& And
|| Or
? : Condição
Atribuição
= Atribuição simples
*=
/=
%=
+=
-=
<<=
>>=
&=
^=
|=
Atribuição pós operação da expressão com a
varíavel de atribuição.
Exemplo:
x +=3 ;
é equivalente a:
x=x+3;
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
if if-else
int x = 1;
if (x > 0)
{
Console.WriteLine("É maior
que 0");
}
int x = -4;
if (x > 0)
{
Console.WriteLine("É maior
que 0");
}else{
Console.WriteLine("É menor
ou igual a 0");
}
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
if-else if [-else] switch-case
int x = -4;
if (x > 0)
{
Console.WriteLine(
"É maior que 0");
}else if(x < 0){
Console.WriteLine(
"É menor que 0");
}else{
Console.WriteLine(
"É 0!");
}
string mes;
switch (x)
{
case 1:
mes = "Janeiro";
break;
case 2:
mes = "Fevereiro";
break;
(...)
default:
mes = "Mes Invalido";
}
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
for while
int t = 2;
for (int i = 1; i <= 10; i++)
{
Console.WriteLine(
t+" x " + i + " = " + i*t);
}
int t=2;
int i=1;
while (i<=10)
{
Console.WriteLine(
t+" x " + i + "
= " + i*t);
i++;
}
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
do-while
int t=2;
int i=1;
do{
Console.WriteLine(
t+" x " + i + “
= " + i*t);
i++;
}while (i<=10);
Break e Continue
• Break: termina o ciclo no
ponto é em que é executado;
• Continue: termina uma
interação no ponto é que é
executado e inicia
imediatamente a nova
interação
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
int pares[5];
ou
int []pares = new
int[5];
0 2 4 6 (N-1) x 2
0 1 2 3 N-1
• Sintaxe:
Declaração estática
(para tipos elementares)
Tipo nome[N];
Ou
Declaração dinâmica
tipo [] nome=new tipo[N];
Exemplo:
int N = 5;
int []pares = new int[N];
for (int i = 0; i < N; i++)
pares[i] = 2 * i;
int[] pares = { 0, 2, 4,6 };
int[] pares = new int[]
{0, 2, 4, 6 };
Inicialização Imediata
Inicialização Dinâmica
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Dimensão 2 (Exemplo):
int [,]matriz = new int[3,4];
//inicialização dinâmica
for (int i = 0; i < matriz.GetLength(0); i++)
for (int j = 0; j < matriz.GetLength(1); j++)
matriz[i, j] = i + j;
0 1 2 3
0 1 2 3
1 2 3 4
2 3 4 5
0
1
2
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Dimensão 2
(Exemplo da matriz identidade):
//inicialização estática
int [,]matriz = new
int[3,3]{
{1,0,0},
{0,1,0},
{0,0,1}};
• Dimensão 3
int [,,]matriz = new int[2,4,2];
1 0 0
0 1 2
0 1 0
0 0 1
0
1
2
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
int [][]jagged = new int[4][];
jagged[0] = new int[]{0,1,2};
jagged[1] = new int[]{1,2};
jagged[2] = new int[]{2,3,4,5};
jagged[3] = new int[]{3};
0 1 2
0 1 2
1 2
2 3 4 5
0
1
2
33
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Conceitos Básicos
• Sistema de Tipos do CLR
• Estrutura e Mecanismos das
Classes
• Construtores
• Procedimentos e Funções
• Conversão entre tipos
• Enumerações
• Namespaces
• Tratamento de Excepções
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Programação Oriendata a Objectos
• Cada entidade de um problema
passa a ser representada por um
objecto
• Aproximação à realidade
• Cada objecto é representado por
uma “classe” (class)
• As características e
comportamentos dos objectos
são traduzidas por atributos e
métodos
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Encapsolamento
• Protecção de estruturas
• Criação de interfaces
(através de funções, por
exemplo)
class Encapsolamento
{
private int a;
public int GetA()
{
return a;
}
}
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Herança
• Representação de entidades
que herdam características e
comportamentos de outras
Veiculo
Carro Bicicleta Moto
Polimorfismo
• Objectos diferentes, mas com os mesmos métodos que,
ainda assim, traduzem comportamentos diferentes.
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Referências
• Ao manipular um objecto, este
não é manipulado directamente,
mas sim a sua referência.
• Uma referência vazia contem o
valor null.
MyObject a
MyObject b
MyObject c
Instância A
Instância B
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Boxing/Unboxing
• Capacidade de adaptar tipos
elementares a objectos;
int i = 5;
object o= i; //boxing
i.ToString(); //boxing
i=(int)o;//unboxing
Referência this
• Representa uma
referência para o objecto
corrente
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Níveis de acesso para membros de uma classe
Modificador Descrição
public Visível para fora da classe onde está definido.
protected Visível dentro da classe onde foi declarado e em classes
derivadas desta.
private Visível apenas nas classes onde está definido.
internal Visível apenas na própria unidade de compilação (assembly).
protected internal Visível apenas na própria assembly e em classes derivadas da
classe onde está declarado.
Níveis de acesso de topo (entre classes)
Modificador Descrição
public Permite que uma classe seja visível a partir de outro assembly.
internal A classe é apenas visível dentro do próprio assembly. Obtém-se
o mesmo efeito se nenhum modificador for incluído na
declaração da classe
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Membros estáticos
• Variáveis estáticas são
partilhadas por todas as
instâncias da classe a que
pertencem;
• Métodos estáticos são
executados fora da
instanciação de objectos
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• São executados sempre que
um objecto é criado
• São usados tipicamente
para inicialização de
atributos
• Permitem a passagem de
parâmetros
• Na prática, consiste num
método com o mesmo
nome da respectiva classe e
sem especificação de tipo
de restorno
class ObjectA
{
private int a;
public ObjectA(int a){
this.a = a;
}
public ObjectA(){
a = 0;
}
}
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Função
public int Le(){
return a;
}
Procedimento
public void Escreve(int a){
this.a = a;
}
Overloading
public int Soma(int a,int b,
int c){
return a+b+c;
}
public int Soma(int a,int b){
return a+b;
}
• As funções tomam o mesmo nome e o
mesmo tipo de retorno, mas possuem
diferentes alinhamentos de parâmetros
de entrada
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Passagem de Parâmetros
• As variáveis são passadas
por cópia
• Mesmo sendo o parâmetro
uma referência, é passada
uma referência desse
parâmetro
Passagem por referência (ref)
• Util para tipos elementares
public void PSomar(int a,
int b, ref int res){
res = a + b;
}
public int FSomar(int a,
int b){
return a + b;
}
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Variáveis de Saída (out)
• Util quando se tem uma
função com várias saídas
• Difere da passagem por
referência porque não exige
que as variáveis estejam
declaradas
Exemplo (mínimo e máximo)
public void Metodo(){
int []a=new int[]{2,5,8};
int min, max;
MaxMin(a, out min, out
max){
}
public int MaxMin(int []a,
out int min, out int max){
(...)
}
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
public class Veiculo{
public bool motorizado;
public int nrodas;
}
public class Carro : Veiculo{
public int nportas;
}
public class Bicicleta: Veiculo{
public int tipo;
}
Classe Mãe
Veículo
motorizado
nrodas
Carro
motorizado
nrodas
nportas
Bicileta
motorizado
nrodas
tipo
• Caso se pretenda que uma
classe não permita que outras
herdem as suas
características, usa-se o
modificador sealed.
Exemplo:
sealed class Veiculo{
(...)
}
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Polimorfismo
• É a forma mais coerente de
redefinir métodos em objectos
que derivam de outros
• Implica alguma perda de
performance
• Usa-se a palavra-chave
virtual para indicar que
um método pode ser
redefinido
• Usa-se o termo override
para indicar a redefinição de
um método
Veiculo
Carro
Andar
Redefinição Simples
Andar
Polimorfismo
class Veiculo{
public virtual void Andar(){
Console.WriteLine("[VEICULO]Andar...");
}
public void Parar(){
Console.WriteLine("[VEICULO]Parar...");
}
}
class Carro : Veiculo{
public override void Andar(){
Console.WriteLine("[CARRO]Andar...");
}
public new void Parar(){
Console.WriteLine("[CARRO]Parar...");
}
}
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Conversão por Casting
• Também designada por
conversão explícita
• Util para conversão entre
estruturas de memória
compatíveis
Exemplo:
Carro c = new Carro();
Veiculo v = (Veiculo)c;
Operador is
• Testa o tipo de dados do
objecto referenciado
Exemplo:
Carro c = new Carro();
Veiculo v = c;
if (v is Carro)
Console.WriteLine("Este
veiculo é na verdade um
carro!");
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Operador typeof
• Identifica o tipo de um
objecto
Exemplo:
Type t = typeof(Carro);
Console.WriteLine("Desc do
tipo Carro:" + t);
Operador as
• Converte variaveis de tipos
diferentes, mas compatíveis
• Semelhante ao cast, mas não
gera excepções
Exemplo:
Carro c2 = v as Carro;
É equivalente a:
if (v is Carro)
c2 = (Carro)v;
else
c2 = null;
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Representam constantes
simbólicas de um certo
tipo concreto
• São representadas
internamente por um
inteiro
• Podem ser convertidas
para inteiros através de
um cast
Exemplo:
public enum
TIPOS_VEICULOS{Carro,Bicileta,
Moto}
(...)
private TIPOS_VEICULOS tipo;
public Veiculo(TIPOS_VEICULOS t)
{
tipo = t;
}
(...)
Veiculo v = new
Veiculo(TIPOS_VEICULOS.Carro);
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Util para organizar classes
• Evitar colisões por
definições de classes com
mesmo nome
• Permite uma organização
hierarquica
• O uso de um Namespace
deve ser declarado através
do termo using, no inicio
do ficheiro
MySoft
Tools
Util String
Forms Web
MySoft
MySoft.Tools
MySoft.Tools.Util
MySoft.Tools.String
MySoft.Forms
MySoft.Web
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Usa-se sempre que há
porções de código com
significativa probabilidade
de gerar excepções
• O código a tratar deve ser
colocado num bloco try-
catch
• O bloco catch deve conter
codigo a executar caso a
excepção ocorra
try{
res = a / b;
}
catch(Exception ex){
Console.WriteLine("[ERRO]"
+ ex.Message);
}
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• A classe System.Object
• Cadeias de caracteres
(Strings)
• Colecções
• Manipulação de Ficheiros
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Object é a classe da qual
todos os objectos
descendem
• Garante funcionalidades
básicas de todos os objectos
• ToString é um dos métodos
comuns a todos os objectos
• A maioria dos metodos
comuns exigem redefinição
de acordo com o abjecto
em causa
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• O objecto System.String
permite representar uma
cadeia de caracteres
• Contém métodos para
manipulação de strings
• O índice mínimo dos
caracteres de uma string é 0
Membro Descrição
Lenght Tamanho da string
Operador + Concatenação de strings
IndexOf Encontra uma string dentro
de outra string e devolve o
índice de posicionamento
Replace Substitui por uma nova
string todas as ocorrências
de uma string noutra string
Split Separação de strings
segundo caracteres de
separação
SubString Devolve parte de uma
string
Alguns membros úteis da classe String
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Permitem agrupar e ordenar
conjuntos de objectos
• Oferecem um elevado nível de
flexibilidade na gestão dos
objectos
• Todas as classes que
representão colecções
derivam da interface
ICollection
• ArrayList e HashTable
são duas das classes mais
comuns neste tipo de
operações
• ArrayList: representa uma lista
de referencias para objectos.
Contem metodos para adição,
deslocamento ou eliminação
de elementos de forma flexível
• HashTable: Difere da classe
ArrayList essencialmente por
permitir associar uma chave a
cada elemento da lista.
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Namespace System.IO
• Os objectos System.IO.StringReader e
System.IO.String.Writer permitem facilmente a leitura e
escrita de ficheiros, respectivamente
Exemplo de leitura:
System.IO.StringReader sr;
sr=new StringReader("c:teste.txt");
string s = sr.ReadToEnd();
Exemplo de escrita:
System.IO.StringWriter sw;
sw=new StringWriter();
string s = "Conteudo de Ficheiro";
sw.Write(s);
Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• No Visual Studio, podem ser
criados a partir de um
Projecto do tipo “Windows
Application”
• Usam assemblies da .NET
Framework que contém uma
variedade de ferramentas
para formulários Windows
Conceitos Introdutórios
Hélder Oliveira helderjmo@gmail.com

Contenu connexe

En vedette

C# 6.0 - Novos Recursos (Agosto/2015)
C# 6.0 - Novos Recursos (Agosto/2015)C# 6.0 - Novos Recursos (Agosto/2015)
C# 6.0 - Novos Recursos (Agosto/2015)Renato Groff
 
5 Ads
5 Ads5 Ads
5 Adslcbj
 
3 C
3 C3 C
3 Clcbj
 
02 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.002 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.0César Augusto Pessôa
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Andre Nascimento
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5César Augusto Pessôa
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net codersRenato Groff
 
02 - Introdução a Projetos parte 2 - v1.0
02 - Introdução a Projetos parte 2 - v1.002 - Introdução a Projetos parte 2 - v1.0
02 - Introdução a Projetos parte 2 - v1.0César Augusto Pessôa
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0César Augusto Pessôa
 

En vedette (20)

C# 6.0 - Novos Recursos (Agosto/2015)
C# 6.0 - Novos Recursos (Agosto/2015)C# 6.0 - Novos Recursos (Agosto/2015)
C# 6.0 - Novos Recursos (Agosto/2015)
 
Guerras cibernéticas
Guerras cibernéticasGuerras cibernéticas
Guerras cibernéticas
 
3- POO
3- POO3- POO
3- POO
 
Aula poo x pe
Aula poo x peAula poo x pe
Aula poo x pe
 
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de ClassesAnálise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
 
5 Ads
5 Ads5 Ads
5 Ads
 
Curso DNA Básico Thetahealing
Curso DNA Básico ThetahealingCurso DNA Básico Thetahealing
Curso DNA Básico Thetahealing
 
3 C
3 C3 C
3 C
 
02 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.002 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.0
 
Introdução C#
Introdução C#Introdução C#
Introdução C#
 
Introducao ao C#
Introducao ao C#Introducao ao C#
Introducao ao C#
 
Apostila de C# & Asp.Net
Apostila de C# & Asp.NetApostila de C# & Asp.Net
Apostila de C# & Asp.Net
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5
 
Como Implementar Um Menu Ribbon em C#
Como Implementar Um Menu Ribbon em C#Como Implementar Um Menu Ribbon em C#
Como Implementar Um Menu Ribbon em C#
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net coders
 
02 - Introdução a Projetos parte 2 - v1.0
02 - Introdução a Projetos parte 2 - v1.002 - Introdução a Projetos parte 2 - v1.0
02 - Introdução a Projetos parte 2 - v1.0
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
Aula diagrama de classes
Aula diagrama de classesAula diagrama de classes
Aula diagrama de classes
 

Similaire à Csharp.intro

Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)Mauricio Volkweis Astiazara
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Leonardo Melo Santos
 
Typescript no fronte no back com Docker
Typescript no fronte no back com DockerTypescript no fronte no back com Docker
Typescript no fronte no back com DockerMVP Microsoft
 
Codificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadosCodificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadoshenriqueprossi
 
Microsoft S2B - C# ASP.NET
Microsoft S2B - C# ASP.NETMicrosoft S2B - C# ASP.NET
Microsoft S2B - C# ASP.NETphilipsoares
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4CDS
 
TypeScript no Back-end e no Front-end
TypeScript no Back-end e no Front-endTypeScript no Back-end e no Front-end
TypeScript no Back-end e no Front-endMVP Microsoft
 
Mackenzie - TypeScript
Mackenzie - TypeScript Mackenzie - TypeScript
Mackenzie - TypeScript MVP Microsoft
 
S2 b desenvolvimento de sistemas [reparado]
S2 b   desenvolvimento de sistemas [reparado]S2 b   desenvolvimento de sistemas [reparado]
S2 b desenvolvimento de sistemas [reparado]Milena Rebouças
 
Apresentação Introdução Typescript - .Net Caxias do Sul
Apresentação   Introdução Typescript - .Net Caxias do SulApresentação   Introdução Typescript - .Net Caxias do Sul
Apresentação Introdução Typescript - .Net Caxias do SulGlaucia Lemos
 

Similaire à Csharp.intro (20)

Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Introdução ao C#
Introdução ao C#Introdução ao C#
Introdução ao C#
 
Introducao Google GO
Introducao Google GOIntroducao Google GO
Introducao Google GO
 
Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)
 
599026
599026599026
599026
 
Programação C - Aula 2
Programação C - Aula 2Programação C - Aula 2
Programação C - Aula 2
 
Qualidade de codigo
Qualidade de codigoQualidade de codigo
Qualidade de codigo
 
Curso de Linguagem C
Curso de Linguagem CCurso de Linguagem C
Curso de Linguagem C
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#
 
Typescript no fronte no back com Docker
Typescript no fronte no back com DockerTypescript no fronte no back com Docker
Typescript no fronte no back com Docker
 
Codificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadosCodificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcados
 
Microsoft S2B - C# ASP.NET
Microsoft S2B - C# ASP.NETMicrosoft S2B - C# ASP.NET
Microsoft S2B - C# ASP.NET
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
TypeScript no Back-end e no Front-end
TypeScript no Back-end e no Front-endTypeScript no Back-end e no Front-end
TypeScript no Back-end e no Front-end
 
Mackenzie - TypeScript
Mackenzie - TypeScript Mackenzie - TypeScript
Mackenzie - TypeScript
 
Microsoft C#
Microsoft C#Microsoft C#
Microsoft C#
 
S2 b desenvolvimento de sistemas [reparado]
S2 b   desenvolvimento de sistemas [reparado]S2 b   desenvolvimento de sistemas [reparado]
S2 b desenvolvimento de sistemas [reparado]
 
02 - Introdução a linguagem C# v1.0
02 - Introdução a linguagem C# v1.002 - Introdução a linguagem C# v1.0
02 - Introdução a linguagem C# v1.0
 
Apresentação Introdução Typescript - .Net Caxias do Sul
Apresentação   Introdução Typescript - .Net Caxias do SulApresentação   Introdução Typescript - .Net Caxias do Sul
Apresentação Introdução Typescript - .Net Caxias do Sul
 

Plus de Hélder Oliveira (14)

Web services
Web servicesWeb services
Web services
 
Regex
RegexRegex
Regex
 
Pensa connoscoenssecundario
Pensa connoscoenssecundarioPensa connoscoenssecundario
Pensa connoscoenssecundario
 
Asp.net
Asp.netAsp.net
Asp.net
 
Asp.net.data
Asp.net.dataAsp.net.data
Asp.net.data
 
Apresentacao aula6-1
Apresentacao aula6-1Apresentacao aula6-1
Apresentacao aula6-1
 
Apresentacao aula5
Apresentacao aula5Apresentacao aula5
Apresentacao aula5
 
Apresentacao aula4
Apresentacao aula4Apresentacao aula4
Apresentacao aula4
 
Apresentacao aula3
Apresentacao aula3Apresentacao aula3
Apresentacao aula3
 
Apresentacao aula1
Apresentacao aula1Apresentacao aula1
Apresentacao aula1
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
 
Live quiz
Live quizLive quiz
Live quiz
 
Ado.net
Ado.netAdo.net
Ado.net
 
Ado.net.exmplos.praticos
Ado.net.exmplos.praticosAdo.net.exmplos.praticos
Ado.net.exmplos.praticos
 

Csharp.intro

  • 2. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Introdução à .net Framework • Bases de Programação em C# • Programação Orientada a Objectos em C# • O essencial da plataforma .net • Formularios Windows
  • 3. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • A Arquitectura • Common Language Runtime • .NET Class Library
  • 4. Hélder Oliveira helderjmo@gmail.com Introdução ao C# C# VB .net J# ... Windows ASP .net Web Controls Web Services Windows Forms Common Language Runtime (CLR) .NET Framework Class Library (FCL)
  • 5. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Máquina Virtual – Implementação da Microsoft da especificação Common Language Infrastructure (CLI) • Compilador JIT (Just in time) – Traduz código intermédio MSIL em código nativo – Possui mecanismos de optimização da compilação • Garbage Collection • Gestão de Thread’s • Exception Handling C# Compiler VB Compiler J# Compiler ... (outros) MSIL JIT Native Code
  • 6. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Especificação desenvolvida pela Microsoft • Define todo o ambiente se suporte a linguagens de alto nível • Especifica essencilamente quatro aspectos: – Common Type System (CTS) – Metadata – Common Language Specification (CLS) – Virtual Execution System (VES) Uniformização e Licenciamento:  Standard ECMA-335, Common Language Infrastructure (CLI)  ISO/IEC 23271, Common Language Infrastructure
  • 7. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Inclui a Base Class Library • Incluí classes próprias da Microsoft • Inclui uma um vasto número de funcionalidades comuns • Facilita o trabalho ao programador Base Classes Library (BCL) Exemplos de aplicação • Manipulação de Ficheiros • Imagem e Desenho • Interacção com Bases de Dados • Manipulação de documentos XML • Comunicações • Web
  • 8. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Introdução • Tipos de dados • Variáveis • Constantes • Controlo de fluxo • Arrays Unidimensionais • Arrays Multidimensionais • Jagged Arrays
  • 9. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • O Primeiro programa using System; namespace PrimeiroPrograma { class Program { static void Main(string[] args) { Console.WriteLine("O meu 1o programa em c#"); } } }
  • 10. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Tipos Numéricos Nome Tamanho (em bytes) Gama Sinal byte 1 0 a 255 Não sbyte 1 -128 a 127 Sim short 2 -32 768 a 32 767 Sim ushort 2 0 a 65 535 Não int 4 -2 147 483 648 a 2 147 483 648 Sim
  • 11. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Tipos Numéricos (continuação) Nome Tamanho (em bytes) Gama Sinal uint 4 0 a 4 294 967 295 Não long 8 -9 223 372 036 854 775 808 a 9 223 372 036 854 775 808 Sim ulong 8 0 a 18 446 744 073 709 551 616 Não float 4 ±1.5 × 10−45 a ±3.4 × 1038 Sim double 8 ±5.0 × 10−324 a ±1.7 × 10308 Sim decimal 16 ±1.0 × 10−28 a ±7.9 × 1028 Sim
  • 12. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Tipo Lógico Nome Tamanho (em bytes) Gama bool 1 true ou false Caracteres Nome Tamanho (em bytes) Descrição char 2 Representa um caracter (letra)
  • 13. Hélder Oliveira helderjmo@gmail.com Introdução ao C# char char1 = 'X'; // Caracter literal char char2 = 'x0058'; // Hexadecimal char char3 = (char)88; // Cast de valor do tipo inteiro char char4 = 'u0058'; // Unicode char char5 = '''; // Sequência de escape Caracteres – Exemplos de Utilização
  • 14. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Caracteres – Sequências de Escape Seq. Descrição ’ Plica ” Aspa Barra para trás 0 Valor nulo a Som (beep) v Tabulação Vertical Seq. Descrição b Backspace f Form Feed n Nova linha r Ir para o inicio da linha t Tabulação horizontal
  • 15. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Cadeias de Caracteres (Strings) • São objectos • Ocupam sempre um mínimo de 20 bytes • Uma string é representada, em código, através de aspas altas (“”) string str = "Representação de uma string.";
  • 16. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Podem ser declaradas em qualquer parte do código • É boa prática respeitar as convenções de nomes para variáveis. • Uma variável deve ser sempre inicializada antes de uzada Convenções de Nomes: www.irritatedvowel.com/Programming/Standards.aspx
  • 17. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Úteis para representar valores que não mudam ao longo do código • São declaradas através do uso do termo const • Devem ser sempre inicializadas ao mesmo tempo quesão declaradas • Podem ser declaradas em qualquer ponto do código
  • 18. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Precedência Operador Descrição Primária (expressão) Agrupamento de expressões ++ ou -- Pós-incrementação ou pós-decrementação Unária + ou - Sinal numérico ! Negação ~ Complemento ++ ou -- Pré-incrementação ou pré-decrementação (tipo) Cast Multiplicativa * Multiplicação / Divisão % Resto Aditiva + Adição - Subtracção
  • 19. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Precedência Operador Descrição Deslocamento << Deslocamento à esquerda >> Deslocamento à direita Relacional < Comparação “menor que” > Comparação “maior que” <= Comparação “menor ou igual que” => Comparação “maior ou igual que” is Comparação de tipos de dados Igualdade == Teste de igualdade != Teste de diferença Operações lógicas binárias & And binário ^ Xor binário | Or binário
  • 20. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Precedência Operador Descrição Operações lógicas sobre expressões && And || Or ? : Condição Atribuição = Atribuição simples *= /= %= += -= <<= >>= &= ^= |= Atribuição pós operação da expressão com a varíavel de atribuição. Exemplo: x +=3 ; é equivalente a: x=x+3;
  • 21. Hélder Oliveira helderjmo@gmail.com Introdução ao C# if if-else int x = 1; if (x > 0) { Console.WriteLine("É maior que 0"); } int x = -4; if (x > 0) { Console.WriteLine("É maior que 0"); }else{ Console.WriteLine("É menor ou igual a 0"); }
  • 22. Hélder Oliveira helderjmo@gmail.com Introdução ao C# if-else if [-else] switch-case int x = -4; if (x > 0) { Console.WriteLine( "É maior que 0"); }else if(x < 0){ Console.WriteLine( "É menor que 0"); }else{ Console.WriteLine( "É 0!"); } string mes; switch (x) { case 1: mes = "Janeiro"; break; case 2: mes = "Fevereiro"; break; (...) default: mes = "Mes Invalido"; }
  • 23. Hélder Oliveira helderjmo@gmail.com Introdução ao C# for while int t = 2; for (int i = 1; i <= 10; i++) { Console.WriteLine( t+" x " + i + " = " + i*t); } int t=2; int i=1; while (i<=10) { Console.WriteLine( t+" x " + i + " = " + i*t); i++; }
  • 24. Hélder Oliveira helderjmo@gmail.com Introdução ao C# do-while int t=2; int i=1; do{ Console.WriteLine( t+" x " + i + “ = " + i*t); i++; }while (i<=10); Break e Continue • Break: termina o ciclo no ponto é em que é executado; • Continue: termina uma interação no ponto é que é executado e inicia imediatamente a nova interação
  • 25. Hélder Oliveira helderjmo@gmail.com Introdução ao C# int pares[5]; ou int []pares = new int[5]; 0 2 4 6 (N-1) x 2 0 1 2 3 N-1 • Sintaxe: Declaração estática (para tipos elementares) Tipo nome[N]; Ou Declaração dinâmica tipo [] nome=new tipo[N]; Exemplo: int N = 5; int []pares = new int[N]; for (int i = 0; i < N; i++) pares[i] = 2 * i; int[] pares = { 0, 2, 4,6 }; int[] pares = new int[] {0, 2, 4, 6 }; Inicialização Imediata Inicialização Dinâmica
  • 26. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Dimensão 2 (Exemplo): int [,]matriz = new int[3,4]; //inicialização dinâmica for (int i = 0; i < matriz.GetLength(0); i++) for (int j = 0; j < matriz.GetLength(1); j++) matriz[i, j] = i + j; 0 1 2 3 0 1 2 3 1 2 3 4 2 3 4 5 0 1 2
  • 27. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Dimensão 2 (Exemplo da matriz identidade): //inicialização estática int [,]matriz = new int[3,3]{ {1,0,0}, {0,1,0}, {0,0,1}}; • Dimensão 3 int [,,]matriz = new int[2,4,2]; 1 0 0 0 1 2 0 1 0 0 0 1 0 1 2
  • 28. Hélder Oliveira helderjmo@gmail.com Introdução ao C# int [][]jagged = new int[4][]; jagged[0] = new int[]{0,1,2}; jagged[1] = new int[]{1,2}; jagged[2] = new int[]{2,3,4,5}; jagged[3] = new int[]{3}; 0 1 2 0 1 2 1 2 2 3 4 5 0 1 2 33
  • 29. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Conceitos Básicos • Sistema de Tipos do CLR • Estrutura e Mecanismos das Classes • Construtores • Procedimentos e Funções • Conversão entre tipos • Enumerações • Namespaces • Tratamento de Excepções
  • 30. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Programação Oriendata a Objectos • Cada entidade de um problema passa a ser representada por um objecto • Aproximação à realidade • Cada objecto é representado por uma “classe” (class) • As características e comportamentos dos objectos são traduzidas por atributos e métodos
  • 31. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Encapsolamento • Protecção de estruturas • Criação de interfaces (através de funções, por exemplo) class Encapsolamento { private int a; public int GetA() { return a; } }
  • 32. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Herança • Representação de entidades que herdam características e comportamentos de outras Veiculo Carro Bicicleta Moto Polimorfismo • Objectos diferentes, mas com os mesmos métodos que, ainda assim, traduzem comportamentos diferentes.
  • 33. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Referências • Ao manipular um objecto, este não é manipulado directamente, mas sim a sua referência. • Uma referência vazia contem o valor null. MyObject a MyObject b MyObject c Instância A Instância B
  • 34. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Boxing/Unboxing • Capacidade de adaptar tipos elementares a objectos; int i = 5; object o= i; //boxing i.ToString(); //boxing i=(int)o;//unboxing Referência this • Representa uma referência para o objecto corrente
  • 35. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Níveis de acesso para membros de uma classe Modificador Descrição public Visível para fora da classe onde está definido. protected Visível dentro da classe onde foi declarado e em classes derivadas desta. private Visível apenas nas classes onde está definido. internal Visível apenas na própria unidade de compilação (assembly). protected internal Visível apenas na própria assembly e em classes derivadas da classe onde está declarado. Níveis de acesso de topo (entre classes) Modificador Descrição public Permite que uma classe seja visível a partir de outro assembly. internal A classe é apenas visível dentro do próprio assembly. Obtém-se o mesmo efeito se nenhum modificador for incluído na declaração da classe
  • 36. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Membros estáticos • Variáveis estáticas são partilhadas por todas as instâncias da classe a que pertencem; • Métodos estáticos são executados fora da instanciação de objectos
  • 37. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • São executados sempre que um objecto é criado • São usados tipicamente para inicialização de atributos • Permitem a passagem de parâmetros • Na prática, consiste num método com o mesmo nome da respectiva classe e sem especificação de tipo de restorno class ObjectA { private int a; public ObjectA(int a){ this.a = a; } public ObjectA(){ a = 0; } }
  • 38. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Função public int Le(){ return a; } Procedimento public void Escreve(int a){ this.a = a; } Overloading public int Soma(int a,int b, int c){ return a+b+c; } public int Soma(int a,int b){ return a+b; } • As funções tomam o mesmo nome e o mesmo tipo de retorno, mas possuem diferentes alinhamentos de parâmetros de entrada
  • 39. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Passagem de Parâmetros • As variáveis são passadas por cópia • Mesmo sendo o parâmetro uma referência, é passada uma referência desse parâmetro Passagem por referência (ref) • Util para tipos elementares public void PSomar(int a, int b, ref int res){ res = a + b; } public int FSomar(int a, int b){ return a + b; }
  • 40. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Variáveis de Saída (out) • Util quando se tem uma função com várias saídas • Difere da passagem por referência porque não exige que as variáveis estejam declaradas Exemplo (mínimo e máximo) public void Metodo(){ int []a=new int[]{2,5,8}; int min, max; MaxMin(a, out min, out max){ } public int MaxMin(int []a, out int min, out int max){ (...) }
  • 41. Hélder Oliveira helderjmo@gmail.com Introdução ao C# public class Veiculo{ public bool motorizado; public int nrodas; } public class Carro : Veiculo{ public int nportas; } public class Bicicleta: Veiculo{ public int tipo; } Classe Mãe Veículo motorizado nrodas Carro motorizado nrodas nportas Bicileta motorizado nrodas tipo • Caso se pretenda que uma classe não permita que outras herdem as suas características, usa-se o modificador sealed. Exemplo: sealed class Veiculo{ (...) }
  • 42. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Polimorfismo • É a forma mais coerente de redefinir métodos em objectos que derivam de outros • Implica alguma perda de performance • Usa-se a palavra-chave virtual para indicar que um método pode ser redefinido • Usa-se o termo override para indicar a redefinição de um método Veiculo Carro Andar Redefinição Simples Andar Polimorfismo class Veiculo{ public virtual void Andar(){ Console.WriteLine("[VEICULO]Andar..."); } public void Parar(){ Console.WriteLine("[VEICULO]Parar..."); } } class Carro : Veiculo{ public override void Andar(){ Console.WriteLine("[CARRO]Andar..."); } public new void Parar(){ Console.WriteLine("[CARRO]Parar..."); } }
  • 43. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Conversão por Casting • Também designada por conversão explícita • Util para conversão entre estruturas de memória compatíveis Exemplo: Carro c = new Carro(); Veiculo v = (Veiculo)c; Operador is • Testa o tipo de dados do objecto referenciado Exemplo: Carro c = new Carro(); Veiculo v = c; if (v is Carro) Console.WriteLine("Este veiculo é na verdade um carro!");
  • 44. Hélder Oliveira helderjmo@gmail.com Introdução ao C# Operador typeof • Identifica o tipo de um objecto Exemplo: Type t = typeof(Carro); Console.WriteLine("Desc do tipo Carro:" + t); Operador as • Converte variaveis de tipos diferentes, mas compatíveis • Semelhante ao cast, mas não gera excepções Exemplo: Carro c2 = v as Carro; É equivalente a: if (v is Carro) c2 = (Carro)v; else c2 = null;
  • 45. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Representam constantes simbólicas de um certo tipo concreto • São representadas internamente por um inteiro • Podem ser convertidas para inteiros através de um cast Exemplo: public enum TIPOS_VEICULOS{Carro,Bicileta, Moto} (...) private TIPOS_VEICULOS tipo; public Veiculo(TIPOS_VEICULOS t) { tipo = t; } (...) Veiculo v = new Veiculo(TIPOS_VEICULOS.Carro);
  • 46. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Util para organizar classes • Evitar colisões por definições de classes com mesmo nome • Permite uma organização hierarquica • O uso de um Namespace deve ser declarado através do termo using, no inicio do ficheiro MySoft Tools Util String Forms Web MySoft MySoft.Tools MySoft.Tools.Util MySoft.Tools.String MySoft.Forms MySoft.Web
  • 47. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Usa-se sempre que há porções de código com significativa probabilidade de gerar excepções • O código a tratar deve ser colocado num bloco try- catch • O bloco catch deve conter codigo a executar caso a excepção ocorra try{ res = a / b; } catch(Exception ex){ Console.WriteLine("[ERRO]" + ex.Message); }
  • 48. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • A classe System.Object • Cadeias de caracteres (Strings) • Colecções • Manipulação de Ficheiros
  • 49. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Object é a classe da qual todos os objectos descendem • Garante funcionalidades básicas de todos os objectos • ToString é um dos métodos comuns a todos os objectos • A maioria dos metodos comuns exigem redefinição de acordo com o abjecto em causa
  • 50. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • O objecto System.String permite representar uma cadeia de caracteres • Contém métodos para manipulação de strings • O índice mínimo dos caracteres de uma string é 0 Membro Descrição Lenght Tamanho da string Operador + Concatenação de strings IndexOf Encontra uma string dentro de outra string e devolve o índice de posicionamento Replace Substitui por uma nova string todas as ocorrências de uma string noutra string Split Separação de strings segundo caracteres de separação SubString Devolve parte de uma string Alguns membros úteis da classe String
  • 51. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Permitem agrupar e ordenar conjuntos de objectos • Oferecem um elevado nível de flexibilidade na gestão dos objectos • Todas as classes que representão colecções derivam da interface ICollection • ArrayList e HashTable são duas das classes mais comuns neste tipo de operações • ArrayList: representa uma lista de referencias para objectos. Contem metodos para adição, deslocamento ou eliminação de elementos de forma flexível • HashTable: Difere da classe ArrayList essencialmente por permitir associar uma chave a cada elemento da lista.
  • 52. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • Namespace System.IO • Os objectos System.IO.StringReader e System.IO.String.Writer permitem facilmente a leitura e escrita de ficheiros, respectivamente Exemplo de leitura: System.IO.StringReader sr; sr=new StringReader("c:teste.txt"); string s = sr.ReadToEnd(); Exemplo de escrita: System.IO.StringWriter sw; sw=new StringWriter(); string s = "Conteudo de Ficheiro"; sw.Write(s);
  • 53. Hélder Oliveira helderjmo@gmail.com Introdução ao C# • No Visual Studio, podem ser criados a partir de um Projecto do tipo “Windows Application” • Usam assemblies da .NET Framework que contém uma variedade de ferramentas para formulários Windows

Notes de l'éditeur

  1. Quem conhecer bem as regras estabelecidas pelo CLI, está apto a criar novas linguagens de alto nível para correr sobre a plataforma;Boa estratégia por parte da MS para “angariar” programadores para a sua plataforma (ex: J#)
  2. Inclui um vasto número de funcionalidades comuns
  3. Introdução-&gt; programa simples
  4. Os programas são organizados em classes encapsulam dados e métodos
  5. O byte é unidade minima em termos de endereçável pela maioria dos processadores
  6. O byte é unidade minima em termos de endereçável pela maioria dos processadores\\f -&gt; util para impressoras de papel continuo para avançar para a proxima página
  7. O byte é unidade minima em termos de endereçável pela maioria dos processadores\\f -&gt; util para impressoras de papel continuo para avançar para a proxima página
  8. São objectos com um tratamento especial
  9. Faz sempre a primeira iteração
  10. Muitas vezes designados tabelas dentro de tabelasFalar num array unidimensional de strings ... Na pratica é um jagged array...
  11. Polimorfismo:Comportamento andar: no carro e moto atraves de um motor... Na bicicleta atraves do pedal
  12. Este processo n é bom em termos de performance
  13. Mostrar exemplos com o visual studio
  14. Mostrar exemplos com o visual studio
  15. Polimorfismo é tipicamente util em arrays de obejctos
  16. Em vez de usar convenções numéricas
  17. Por o throw