Introdução
Apresentação
A plataforma .NET
A linguagem C#
C# - Características
Organização do código
IDE - Ambiente de desenvolvimento
Versões do .NET
Visual Studio - Instalação
Visual Studio Code - Instalação
Visual Studio - Templates de projeto
Estrutura do projeto
Visual Studio Code - Projetos
Projeto - Configurações
Projeto Console - Análise de código
Como escolher a versão do SDK .NET
Fundamentos
Apresentação
Tipos de dados
Tipos numéricos integrais
Tipos números de ponto flutuante
Tipos não numéricos : bool e char
Tipos de referência
Tratamento de data e hora : DateTime
Nullable Types
Nomenclatura : convenções
Exercícios - fase 1
Formatar a saída de dados
Formatação - Seqüência de Escapes
Conversão de tipos I
Conversão de tipos II
Entrada de dados
Operadores aritméticos e classe Math
Inferência de tipos
Operadores de atribuição
Constantes
Operadores de incremento e decremento
Operadores relacionais
Operadores Lógicos
Precedência e associatividade de operadores
Nullable Reference Types
Operador Ternário
Exercícios - fase 2
Projetos das aulas e respostas do exercícios
Estruturas de Controle
Apresentação
Instrução if
Instrução if-else
Instrucao if-else-if
Instrução switch I
Instrução switch II
Estrutura de repetição
Instrução while I
Instrução while II
Instrução do while
Instrução for I
Instrução for II
Instruções break e continue
Lista de exercícios
Projeto das Aulas e respostas dos exercícios
Classes e Métodos
Classe e Objeto
Alocação de Memória
O que é um objeto
Métodos
Métodos com parâmetros
Passando parâmetros
Construtor I
Construtor II
Palavra this
Exercício Prático I
Métodos com retorno
Exercício Pratico II
Sobrecarga de métodos
Exemplo prático
Passando argumentos por valor
Passando argumentos por referência - ref
Exercício Prático III
Passando argumentos por referência - out
Exercício Prático IV
Argumentos nomeados
Parâmetros opcionais
Exercício Prático V
Métodos estáticos
Campos estáticos I
Exercício - Campos estáticos
Exercício Prático VI
Construtor estático
Propriedades
Exercício - Propriedades
Exercício Prático VII
Structs
Exercício Prático VIII
Enum
Exemplo - Enum
Exercício Prático IX
Modificadores de acesso
Exercício Prático X
Bloco try-catch
Tipos Anônimos
Exercícios Teóricos
Projeto das Aulas e respostas dos exercícios
Array, ArrayList e List
Apresentação
Arrays I
Arrays II
Arrays III
Classe Array
Exercício - Arrays
Modificador params
Arrays Multidimensionais I
Arrays Multidimensionais II
Exercício - Arrays Bidimensionais
ArrayList I
ArrayList II
ArrayList III
ArrayList IV
Coleção List<T> I
Coleção List<T> II
List e ArrayList
List - Métodos Find
List - Métodos Find - Expressões Lambdas
List e IEnumerable
Exercício - List<T>
Indexadores
Classe Random
Exercícios Propostos
Projeto das Aulas e Projeto com a solução dos exercícios
Programação Orientada a Objetos
Os pilares das Programação Orientada a Objetos
Herança
Herança - Construtores
Herança e Object
Herança e new
Herança - virtual e override
Modificador sealed
Exercício - Herança
Tipos de Herança
Downcasting e Upcasting
Operador is e as
Classe Abstrata I
Classe Abstrata II
Interfaces
Exercício - Interfaces
Composição
Agregação
Exemplo - Herança e Composicao
Polimorfismo
Exemplo - Polimorfismo
Exercícios Propostos
Projeto das aulas e respostas dos exercícios
Generics e Coleções Genéricas
Generics - Introdução
Generics II
Generics III
Exercício - Generics
GetHashCode e Equals
Exemplo GetHashCode
Comparação : Coleções genéricas e não genéricas
Coleção Dictionary<TKey,TValue>
Dictionary II
Exercício - Dictionary
Coleção SortedDictionary<Tkey,TValue>
SortedDictionary II
Coleções Set
HashSet<T> II
SortedSet<T>
Stack<T>
Stack II - undo
Queue<T>
ReadOnlyCollection<T>
Exercícios Propostos
Projeto das Aulas e Respostas dos exercícios
Tratamento de Erros
Conceitos - Tratamento de exceções
Bloco try-catch-finally
Lançando exceções - throw
Filtro de exceções
Exercício - Tratamento de exceções
Exceções personalizadas
Exercícios Propostos
Projeto das Aulas e respostas dos exercícios
Delegates, Expressão Lambda, Eventos e LINQ
Delegates
Delegate Multicast
Métodos Anônimos
Expressões lambdas
Delegate Predicate
Delegate Action
Delegate Function
Exercício - Delegate
Eventos
EventHandler
EventHandler<TEventArgs>
Métodos de extensão
LINQ I
LINQ II
Consultas LINQ I
Consultas LINQ II
Consultas LINQ III
Exercícios Propostos
Projeto das aulas e respostas dos exercícios
Arquivos, Diretórios e Streams
Classe File
File II
Classe FileInfo
Classes Directory e DirectoryInfo
DirectoryInfo II
Classe Path
Streams - FileStream, StreamReader e StreamWriter
Exercício - FileStream, StreamReader
Streams - bloco using
Exercício - Streams
Exercício - Streams II
Exercícios Propostos
Projeto das aulas e respostas dos exercícios
Programação Assíncrona
Programação assíncrona e paralela
Programação assíncrona - Task e Task<T>
ValueTask e ValueTask<T>
Cancelamento de tarefas
Tratamento de exceções
Múltiplas exceções
Recomendações
Exercício - Programação assíncrona
Streams assíncronos
Controlando threads com semáforos
Exercícios Propostos
Projeto das aulas e respostas dos exercícios
CORTESIA - LINQ
Apresentando os fundamentos
Consultas LINQ
Operadores de projeção
Operações com Conjuntos I
Operações com Conjuntos II
Operadores de Ordenação
Operadores de Agregação I
Operadores de Agregação II
Operadores de Quantificação
Operadores de Agrupamento
Operações de Junção I
Operações de Junção II
Operadores de Elemento I
Operadores de Elemento II
Operadores de Conversão
Operadores de Particionamento
Paginação com Skip e Take
Operadores de Geração
Métodos Append<T>, Prepend<T> e Zip
Operadores de Conversão