




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Curso muito bom que fiz no Centro de Inovação da PUCRS onde aprendi os conceitos de orientação a objetos na linguagem C#
Tipologia: Notas de aula
1 / 160
Esta página não é visível na pré-visualização
Não perca as partes importantes!





























































































Módulo 1: Visão Geral da Plataforma .NET
Módulo 2: Tipos de Dados
Módulo 3: Classes e Objetos
Módulo 4: Comandos e Operadores e coleções
Módulo 5: Herança, Polimorfismo e Classes Abstratas
Módulo 6: Aplicativos Console
Módulo 7: Aplicativos Windows Forms
Alternativa mais “limpa” ao C++ Desenvolvido em conjunto com o .NET por Anders Hejlsberg Atraente a desenvolvedores de outras linguagens que não o VB (C/C++, Java, etc)
Por que uma nova linguagem?
O “equilíbrio” que era bom nos anos 70/ (C) e 80/90 (C++) não é bom hoje: ponteiros/malloc/free: é um mecanismo muito frágil, especialmente para servidores de aplicativos Não suportam componentes diretamente Fragilidade em ter vários arquivos (.CPP, .H, .LIB)
Outras alternativas recentes apresentam sérios problemas, principalmente de performance
Apenas “managed code”; não suporta Win Ponteiros apenas em código unsafe Tipos, biblioteca de runtime e demais características do .NET Framework Não tem argumentos default, ou pré- processador (#include) Ordem das declarações não é importante na maioria dos casos
Linguagem orientada a componentes Tudo é visto como um objeto Robusta
C# - Além do C++ : tudo é objeto
Problemas tradicionais: C++, Java, Delphi: tipos primitivos são “mágicos” e não-OOP Smalltalk, Lisp: tudo é objeto, mas custo de performance é grande
C# unifica os tipos sem custo de performance Coleções funcionam com todos os tipos
struct e enum , além de inteiros, ponto flutuante e decimal são tipos-valor (baratos)
Coleta de lixo ( Garbage Collector ) Robustez e facilidade de uso
Exceptions : mecanismo único de tratamento de erros
Tipos seguros: o sistema de tipos jamais pode ser violado; todas as coerções são verificadas
Considerações de versão feitas desde o início (exemplo: atributos virtual , override , new )
Execução do programa começa no método Main()
A palavra-chave using referencia namespaces da Biblioteca de Classes do .NET Framework
Instruções são comandos que executam ações Um programa é feito de muitas instruções Instruções são separadas por ponto-e-vírgula (^) Chaves são usadas para agrupar instruções using System; class AloMundo { static void Main() { Console.WriteLine (“Alo, Mundo!”); } }
Seguir o roteiro de laboratório 1
Tipos-valor Contém os dados diretamente Não podem ser “null”
Tipos-referência Contém referências para objetos Podem ser “null” int i = 123; string s = "CTXML"; i 123 s (^) "CTXML"
Tipos-valor (^) Primitivos int i; (^) Enumerações enum State { Off, On } (^) Estruturas struct Point { int x, y; } Tipos-referência (^) Classes class Foo: Bar, IFoo {...} (^) Interfaces interface IFoo: IBar {...} (^) Arrays string[] a = new string[10]; (^) Delegates delegate void Empty();
sbyte -128 a +127 8-bit com sinal byte 0 a 255 8-bit sem sinal short -32.768 a +32.767 16-bit com sinal ushort 0 a 65535 16-bit sem sinal int -2.147.483.648 a +2.147.483. 32-bit com sinal uint 0 a 4.294.967.295 32-bit sem sinal long -9.223.372.036.854.775.808 a +9.223.372.036.854.775. 64-bit com sinal ulong 0 a 18.446.744.073.709.551. 64-bit sem sinal char U+0000 a U+ffff 16-bit Unicode float 1,5x10-45 a 3,4x10+38 32-bit ponto flutuante double 5,0x10-324 a 1,7x10+308 64-bit ponto flutuante bool true ou false decimal 1,0 × 10-28 a 7,9 × 10+28 128-bit ponto flutuante
Implícita (^) Executada pelo compilador em operações em que há garantia de que a informação não será truncada ou perdida
Explícita Quando explicitamente é pedido ao compilador para converter uma informação que pode ser perdida int x = 123456; // 32 bits long y = x; // coerção implícita para 64 bits int x = 65537; // 32 bits byte z = (byte) x; // coerção explícita para 8 bits