69
PROF. ME. HÉLIO ESPERIDIÃO

PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

P R O F. M E . H É L I O E S P E R I D I Ã O

Page 2: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

PROGRAMAÇÃO III - AULA 01

Page 3: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

TIPIFICAÇÃO

• Uma linguagem Tipificada ou Tipada é aquela que permite a declaração de variáveis de tipos

específicos;

• As linguagens podem ser classificadas em Fortemente Tipadas, Fracamente Tipadas e Não

tipadas;

Page 4: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

VANTAGENS - UMA LINGUAGEM TIPIFICADA

• Alocação de espaço necessário de memória para a

variável;

• Funções com tipos de dados definidos;

• Possuem maior “Aprendibilidade” por possuir códigos

mais legíveis;

• Possibilidade de criação de tipos em algumas linguagens,

Ex: Java;

Page 5: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

DESVANTAGENS

• Códigos maiores;

• Conversões de Tipos podem gerar erros;

• Limitação no tamanho das variáveis

Page 6: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

STRONG TYPING

• Linguagens Fortemente Tipadas:

• São aquelas que possuem declaração de tipos

obrigatórios e explícitos;

• Existem tipos específicos: int, float, boolean*, byte*, etc.

• Exemplos: Java, C, C++, C#, Fortran, Cobol.

Page 7: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

TAMANHO DE ALOCAÇÃO DOS TIPOS:

• int : 4 bytes;

• float : 4 bytes;

• char :2 bytes;

• byte :1 byte;

• long : 8 bytes;

• Vetor: Tipo x Tamanho : int Vet[40] = 40x4 bytes;

• String : Vetor de char (basicamente)

Page 8: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

LINGUAGENS FRACAMENTE TIPADAS

• Conhecidas como Dinamicamente

Tipadas;

• Possuem os tipos durante a execução

do programa;

• O programa pode alterar o tipo de

dado contido na variável;

• Não possui cast (conversão);

• Exemplos: PHP, JavaScript, Ruby,

Python;

• Exemplos em PHP.

Page 9: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

LINGUAGENS NÃO TIPADAS

• Não possuem tipos de dados;

• Podem possuir tipos de dados genéricos;

• Exemplos: Assembly, BCPL, Perl;

• Exemplos em Assembly.

• MOV AL, 1h ;

• MOV CL, 2h ;

• MOV DL, 3h ;

Page 10: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

IDE(INTEGRETED DEVELPMENTENVIRONMENT)

• É o ambiente de desenvolvimento integrado (note que é

masculino), ou seja, é o programa que integra as várias

ferramentas necessárias para o desenvolvimento de

softwares.

• Sua principal função é ajudar o programador a

editar o código que será usado para criar seu programa.

• Outra coisa muito importante que todos IDEs fazem é

chamar o compilador, ou interpretador, dentro de certos

parâmetros para gerar e/ou executar o programa criado,

se ele não contiver erros.

Page 11: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

IDE

• depurar programas durante a execução com várias facilidades;

• gerenciar os projetos e suas configurações

• executar testes, montar o deploy ou até mesmo fazê-lo;

• fazer análise estática;

• controle de versão;

• acessar banco de dados;

• gerar códigos automaticamente para certos padrões de codificação, como telas e relatórios;

• dar acesso fácil à documentação;

• diversas ajudas durante o processo de edição do código

Page 12: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

COMPILADOR

• O compilador é o programa que analisa e gera o executável do

que está sendo criado. Ele pega um texto compreensível por

humanos - o que o programador escreveu - e transforma em

código compreensível por máquinas, um código binário que

possui instruções do que o processador deve executar (há

casos de código intermediário).

• O compilador deve entender as regras que uma determinada

linguagem de programação foi construída. E deve garantir que

todas elas foram seguidas, transformando o código escrito

obedecendo estas regras.

Page 13: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

MICROSOFT VISUAL STUDIO

• é um ambiente de desenvolvimento integrado (IDE) da Microsoft para desenvolvimento de

software especialmente dedicado ao .NET

Page 14: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

MICROSOFT VISUAL STUDIO

Page 15: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

O QUE PODE SER FEITO COM O IDE DO VISUAL STUDIO?

• Você deseja criar um aplicativo para um telefone Android? Você pode fazer isso.

• E quanto à criação de um jogo de última geração com o C++? É possível fazer isso e muito,

muito mais.

• O Visual Studio fornece modelos que ajudam você a criar sites, jogos, aplicativos de área de

trabalho, aplicativos móveis, aplicativos para o Office e muito mais.

Page 16: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

CRIAR APLICATIVOS MÓVEIS

• É possível criar aplicativos móveis

nativos para diferentes plataformas

usando o Visual C# e o Xamarin ou o

Visual C++ ou aplicativos híbridos

usando o JavaScript com o Apache

Cordova. É possível escrever jogos

móveis para o Unity, Unreal, DirectX,

Cocos e muito mais. O Visual Studio

inclui um emulador do Android para

ajudá-lo a executar e depurar aplicativos

Android.

Page 17: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

CRIAR APLICATIVOS NA NUVEM PARA O AZURE

• O Visual Studio oferece um pacote de ferramentas que

permite criar aplicativos habilitados para a nuvem com

facilidade da plataforma Microsoft Azure. É possível

configurar, compilar, depurar, empacotar e implantar

aplicativos e serviços no Microsoft Azure diretamente

por meio do IDE. Aproveite os serviços do Azure em

seus aplicativos usando os Serviços Conectados. Para

obter as Ferramentas do Azure para .NET, selecione a

carga de trabalho desenvolvimento do Azure ao instalar

o Visual Studio. Para obter mais informações, consulte

Ferramentas do Visual Studio para o Azure.

Page 18: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

CRIAR APLICATIVOS PARA A WEB

• A Internet impulsiona nosso mundo moderno e o

Visual Studio pode ajudá-lo a escrever aplicativos para

ele. É possível criar aplicativos Web usando o ASP.NET,

Node.js, Python, JavaScript e TypeScript. O Visual

Studio reconhece estruturas Web como Angular,

jQuery, Express e muito mais. O ASP.NET Core e o

.NET Core são executados nos sistemas operacionais

Windows, Mac e Linux. Para obter mais informações,

consulte Ferramentas da Web modernas.

Page 19: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

ESCREVER UM CÓDIGO EM UM AMBIENTE DE EDIÇÃO DA MAIS ALTA QUALIDADE

Page 20: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

COMMUNITY

• Em 12 de novembro de 2016 A edição Community foi

anunciada como uma versão nova e gratuita com

funcionalidade similar ao Visual Studio Professional

• Visual Studio Community dá suporte a múltiplas

linguagem, e fornece suporte para extensões. Visual

Studio Community é orientado para desenvolvedores

individuais e pequenas equipes

Page 21: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

FA Ç A O D O W N LO A D

H T T P S : / / W W W. V I S U A L S T U D I O. C

O M / P T- B R / D OW N L O A D S

Page 22: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

C#

• A linguagem C# (lê-se “cêsharp”) foi criada juntamente com a arquitetura da plataforma .NET da

Microsoft. Construída do zero, sem se preocupar com compatibilidade de código legado, e a maioria

das classes do framework .NET foram escritas com essa linguagem. Vários desenvolvedores

participaram do projeto de criação da linguagem, mas o principal envolvido no projeto foi o

engenheiro Anders Hejlsberg, que além do C# foi criador do Turbo Pascal e do Delphi.

• O nome C# fez com que muitas pessoas pensassem que a cerquilha (#) seria uma sobreposição de

quatro símbolos de adição, dando assim a entender que poderia ser um C++++, mas na verdade o

símbolo # se refere ao sinal musical de sustenido (#), que indica meio tom acima de uma

determinada nota musical. Possui uma sintaxe expressiva, elegante e é totalmente orientada a

objetos

Page 23: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

CARACTERÍSTICAS

• A linguagem C# foi influenciada por várias linguagens, como por exemplo, JAVA e C++.

• Na verdade, ela é uma junção das principais vantagens dentre essas linguagens, melhorando

suas implementações e adicionando novos recursos, fazendo a linguagem atrativa para

desenvolvedores que queiram migrar para o Microsoft .NET.

Page 24: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

ARQUITETURA .NET

• CLR (Commom Language Runtime)

• CTS (Common Type System)

• CLS (Common Language Specification)

• BCL (Base Classe Library)

Page 25: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

CLR (COMMOM LANGUAGE RUNTIME)

• É o ambiente de execução das aplicações .NET

• As aplicações .NET não são nativas do sistema operacional Windows.

• O Win32, ao identificar uma aplicação .NET, dispara o runtime .NET.

– O CLR cuida do gerenciamento da memória via um mecanismo de gerenciamento de memória

chamado Garbage Collector (GC)

– CLR é único para todos as linguagens que fazem uso do .net.

Page 26: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

CTS (COMMON TYPE SYSTEM)

• Define os tipos suportados por .NET e as suas características

• Toda linguagem que suporta .NET tem de, necessariamente, suportar esses tipos.

• Todo tipo deriva da classe Object, porque em .NET tudo é um objeto e, portanto, todos os

tipos devem ter como raiz essa classe.

– E é dessa forma que os diversos tipos nas diversas linguagens são implementados, obedecendo às

regras definidas no CTS.

Page 27: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

CLS (COMMON LANGUAGESPECIFICATION)

• Define um conjunto de regras que qualquer linguagem que implemente a .NET deve seguir a

fim de que o código gerado resultante da compilação de qualquer peça de software escrita na

referida linguagem seja perfeitamente entendido pelo runtime .NET

• Seguir essas regras é um imperativo porque, caso contrário, um dos grandes ganhos do .NET,

que é a independência da linguagem de programação e a sua interoperabilidade, fica

comprometido.

Page 28: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

BCL (BASE CLASSE LIBRARY)

• Como era de se esperar, uma plataforma que promete facilitar o desenvolvimento de sistemas precisa ter uma biblioteca de classes básica que alavanque a simplicidade e a rapidez no desenvolvimento de sistemas. É este o objetivo da BCL (Biblioteca de Classes Base), oferecer ao desenvolvedor uma biblioteca consistente de componentes de software reutilizáveis que não apenas facilitem, mas também que acelerem o desenvolvimento de sistemas

• Na BCL encontramos classes que contemplam desde um novo sistema de janelas a bibliotecas de entrada/saída, gráficos, sockets, gerenciamento da memória etc. Esta biblioteca de classes é organizada hierarquicamente em uma estrutura conhecida como namespace. Ao desenvolver um componente de software reusável, este precisa ser estruturado em um namespace para que possa ser usado a partir de um outro programa externo. A seguir mostramos uma tabela com alguns dos principais namespaces que fazem parte da BCL:

Page 29: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core
Page 30: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

MICROSOFT INTERMEDIATELANGUAGE

• –éa linguagem intermediária para qual é interpretado qualquer programa .NET, independente

da linguagem em que este for escrito.

• Essa tradução é feita para código intermediário (como em JAVA com os byte codes)

sintaticamente expresso na IL. Por sua vez, qualquer linguagem .NET compatível, na hora da

compilação, gerará código MIL e não código assembly específico da arquitetura do processador

onde a compilação do programa é efetuada

Page 31: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core
Page 32: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

ARQUITETURA DA PLATAFORMA DO .NET FRAMEWORK• Programas escritos em C# são executados no .NET Framework, um

componente do Windows que inclui um sistema de execução virtual chamado Common Language Runtime (CLR) e um conjunto unificado de bibliotecas de classes.

• O CLR é a implementação comercial da Microsoft da infraestrutura de linguagem comum (CLI), um padrão internacional que é a base para a criação e execução de ambientes de desenvolvimento em que as linguagens e as bibliotecas trabalham juntos sem problemas

• O código-fonte escrito em C# é compilado em uma linguagem intermediária (IL) que está em conformidade com a especificação CLI.

• Quando o programa C# é executado, o assembly é carregado para o CLR

Page 33: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

CARACTERÍSTICAS DO C#

• Simplicidade: os projetistas de C# costumam dizer que essa linguagem é tão poderosa quanto

o C++ e tão simples quanto o Visual Basic.

• Completamente orientada a objetos: em C#, qualquer variável tem de fazer parte de uma

classe.

• Fortemente tipada: isso ajudará a evitar erros por manipulação imprópria de tipos, atribuições

incorretas etc.

• Tudo é um objeto: System.Object é a classe base de todo o sistema de tipos de C#.

Page 34: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

CARACTERÍSTICAS DO C#

• Flexibilidade: se o desenvolvedor precisar usar ponteiros, o C# permite, mas ao custo de

desenvolver código não-gerenciado, chamado “unsafe”

• Linguagem gerenciada: os programas desenvolvidos em C# executam num ambiente

gerenciado, o que significa que todo o gerenciamento de memória é feito pelo runtime via o

GC (Garbage Collector), e não diretamente pelo programador, reduzindo as chances de

cometer erros comuns a linguagens de programação onde o gerenciamento da memória é

feito diretamente pelo programador.

Page 35: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

C# NO MUNDO

https://www.tiobe.com/tiobe-index/

Page 36: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

C# NO MUNDO

https://pypl.github.io/PYPL.html

Page 37: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

NAMESPACE

• O grande problema que surge com os sistemas grandes é a organização de todas as suas

classes.

• Para evitar que o sistema fique caótico, podemos agrupar as classes por características comuns

e dar um nome para cada um desses grupos. Isto é, agruparíamos um conjunto de classes em

um espaço em comum e lhe daríamos um nome, como por exemplo br.com.google.clientes

• Esse espaço definido por um nome é chamado de namespace.

Page 38: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

OLÁ MUNDO

Page 39: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

NOVO PROJETO

Page 40: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core
Page 41: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

TIPOS

• Value types

– Contém diretamente o valor

– Não podem ser nulos

• Reference types

– Contém uma referência para um objeto

– Podem ser nulos

Page 42: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

TIPOS

• Tipos Valor

– Primitivos int i;

– Enumerações enum Cor {Azul, Verde}

– Estruturas struct Point {int x, y;}

• Tipos Referência

– Classes class A : B, IC {...}

– Interfaces interface IA : IB {...}

– Vetores string[] v = new string[10];

– Delegações delegate void Algo();

Page 43: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

ENUMS (ENUMERATIONSOU ENUMERAÇÕES)

• São constantes fortemente tipadas.

• Elas são estáticas, ou seja, não é possível nem

preciso acessar os seus valores instanciando um

objeto utilizando a palavra reservada new.

• O acesso é feito a partir do nome da classe em

que está contido e em seguida o nome do enum

a ser utilizado.

Page 44: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

TIPOS PREDEFINIDOS

• Tipos predefinidos do C#:

– Referenciados object, string

– Com sinal sbyte, short, int, long

– Sem sinal byte, ushort, uint, ulong

– Caractere char

– Ponto flutuante float, double, decimal

– Lógico bool

• Tipos são apelidos para tipos do .NET

– int = System.Int32

Page 45: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

MEMÓRIA

int i = 123;

string s = “univap”; i

s

123

“univap”

Page 46: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

BOXING E UNBOXING

• O processo de conversão explícita de um tipo valor para um tipo referência é conhecido em

C# como Boxing (encaixotar).

• Quando essa operação é efetuada entre tipos que não são equivalentes, uma exceção é gerada

pelo runtime.

Page 47: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

CONVERSÕES

• Conversões implícitas

– Ocorrem automaticamente

– Garantia de sucesso

– Nenhuma perda na precisão das informações

• Conversões explícitas

– Exige um elenco

– Podem não ter sucesso

– Informações (precisão) podem ser perdidas

• Ambas conversões implícitas e explícitas

podem ser definidas pelo usuário

Page 48: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

SISTEMA UNIFICADO DE TIPOS

• Tudo é objeto:

– Em última instância, todos os tipos são herdados de objetos.

– Qualquer pedaço de dados pode ser armazenado, transportado, e manipulado sem trabalho extra.

Sistema unificado de tipos

MemoryStream FileStream

Stream Hashtable int double

object

Page 49: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

POLIMORFISMO

Page 50: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

OS TIPOS DE VALOR E POLIMORFISMO

– Como um int (tipo valor) pode ser convertido em um objeto

(tipo referência)?

– Como podemos unificar tipos de valor e de referência?

• Boxing copia um tipo valor para um tipo referência

• Unboxing faz a cópia inversa

int i = 123; // tipo valor

object o = i; // tipo referência

int j = (int)o;

i

o

123j

123

System.Int32

Page 51: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

T I P O S I N T E I R O S

Tipo C# Tipo SystemTamanho

(bytes)Sinal?

sbyte System.Sbyte 1 Sim

Short System.Int16 2 Sim

Int System.Int32 4 Sim

Long System.Int64 8 Sim

Byte System.Byte 1 Não

Ushort System.UInt16 2 Não

Uint System.UInt32 4 Não

Ulong System.UInt64 8 Não

Page 52: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

T I P O S P O N T O

F L U T U A N T E

Tipo

C#Tipo System

Tamanho

(bytes)

float System.Single 4

double System.Double 8

Page 53: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

TIPO DECIMAL

• Todos os tipos inteiro podem

ser implicitamente convertidos

para um tipo decimal

• As conversões entre decimal e

tipos flutuantes exigem

conversão explícita devido à

possibilidade de perda de

precisão

Tipo

C#Tipo System

Tamanho

(bytes)

decimal System.Decimal 16

Page 54: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

T I P O S P R I M I T I V O S

Page 55: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

IMPORTÂNCIA DA ESCOLHA CORRETA DO TIPO DE DADOS

• Economia de memória.

• Economia de processador.

• Economia de Disco.

• Qual o resultado da economia?

Page 56: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

CONSOLE

• A classe Console possui uma

série de métodos estáticos

que servem de controle para

o console.

Page 57: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

MÉTODO BEEP

Page 58: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

VERIFICA SE TECLAS ESTÃO PRESSIONADAS

Page 59: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

LIMPA O CONCOLECLEAR()

Page 60: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

MOVIMENTA O CURSOR

Page 61: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

TÍTULO DA JANELA

Page 62: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

LEITURA DE DADOS

• Todos os dados coletados por meio do método ReadLine são do tipo string

Page 63: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core
Page 64: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

OPERADORES ARITMÉTICOS

Operador Função

+ Soma

- Subtração

/ Divisão

% Resto da divisão

\ Divisão de resultado inteiro

* Multiplicação

Page 65: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

OPERADORES RELACIONAIS

Operador Função Exemplo

== Comparação x==y

> Maior que x>y

< Menor que x<y

>= Maior ou igual a x>=y

<= Menor ou igual a x<=y

!= Diferente de x!=y

Considere: x=1; y=3;

Page 66: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

OPERADORES DE ATRIBUIÇÃO

Operador Função Exemplo

= Atribuição Simples X=5;

+= Atribuição aditiva X+=5;

-= Atribuição Subtrativa X-=5;

*= Atribuição Multiplicativa X*=5;

/= Atribuição de divisão X/=5;

%= Atribuição de módulo X%=5;

Page 67: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

OPERADORES LÓGICOS

Operador Função Exemplo

&& .e. Lógico. (A>B) && (A<B)

|| .ou. Lógico. (A>B) || (A<B)

! Negação !z

Considere: z=false;

Page 68: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core

Expressões Aritméticas

Operador Descrição Hierarquia da

Operação

+

-

Soma

Subtração

/

*

Multiplicação

Divisão

( ) Parênteses 1º

7+4/2 ?????

Page 69: PROF. ME. HÉLIO ESPERIDIÃONode.js, Python, JavaScript e TypeScript. O Visual Studio reconhece estruturas Web como Angular, jQuery, Express e muito mais. O ASP.NET Core e o .NET Core