Nesse repositório contém alguns algoritimos e práticas de desenvolvimento aprendido na plataforma de ensino do Balta.IO
Repositório destinado a conter exercícios e projetos do plataforma balta.io.
Descrição do seu projeto; Funcionalidades; Como os usuários podem utilizá-lo; Onde os usuários podem encontrar ajuda sobre seu projeto; Autores do projeto. oi
Utilizados para definir niveis de acesso para classes, métodos, priopriedades. “Documentação”
Private | Define que o acesso aos dados ficaram acessiveis somente dentro da classe pai |
---|---|
Protect | Acesso limitado a classe que contém os ou aos tipos derivado da classe que as contém. |
Internal | Acesso limitado ao namespace atual. |
Public | Acesso não restrito. |
Protect Internal | Acesso limitado ao assembly atual ou aos tipos derivados da classe que as contém. |
Private protected | O acesso limitado a classe que o contém ou a tipos derivados da classe que comtém no assembly atual. |
- Private
- Protect
- Internal
- Public
Obersarvação, classes que em por padrão são defauld, são definidas como private.
Tipos complexos são classes que tem internamente outros tipos de onbjeto em seus menbros
Ex:
namespace BaltaIO
{
public static void main()
{
public class Pagamento()
{
public bool StatusPagamento{ get; set; }
public StatusEndereco Endereco { get; set; } // Tipo Complexo
}
// Objeto endereço, contendo seus mebros da classe.
static void Endereco()
{
public bool StatusEndereco {get; set;}
public string Endereco { get; set; }
public string Numero { get; set; }
}
}
}
Sobre carga do métodos, são multiplas assinaturas do método.
Ex
public void Pagar(double valorPagamento){}
public void Pagar(double valorPagamento, DateTime dataPagamento){}
public void Pagar(double valorPagamento, DateTime dataPagamento, bool statusPagamento = true){}
Utilizado quando trabalhamos com herança.
Contrutor paramiters ⇒ Contrutor sem parametros.
Using ⇒ Garante o uso correto de onbjeto de descarte.
para utilziar o Using é preciso herdar a classe IDisposable:
Classe Static não pode ser instanciada, porque quando informamos que a classe é static ela passa a ter sempre a informação em na memoria no build da aplicação.
Avantagens -
Armanezar informações na configuração da aplicação Ex:
//Modelo que armazena dados da apicaçao que podem ficar em memoria.
public static class Settings()
{
public static string URL_API { get; set; }
}
Sempre que a mesma informação sejá a mesma pra qualquer tipo de usuario, é o ideial a utilziação.
No exemplo do projeto Itau, podemos criar objetos static para uma chama de URL da API, STS, BP4, CA.
Modificador sealead, utilizada para selar a classe, priobindo heranças e classes estendidas devirada dela.
Classes parciais ⇒ Class partial, é um modificador utilziado para quando precisar criar duas classes que precisa extender uma da outra. caso raro. Ex:
Payments.cs
namespace Payments
{
public partial class Payment
{
//Aqui fica os =>
//metodos
//eventos
}
}
CreditCardPayments.cs
namespace Payments
{
public partial class payment
{
//Aqui fica os =>
//Métodos
//Eventos
}
}
Interfaces é igual a um contrato, precisamos seguir o modelo de implementação como regra do contexto.
A interface é um contato de como deve ser feito, com implmentalções a ser seguidas.
Classe abstrata, é utilizada quando queremos definir que uma classe não pode ser instancia, por não fazer necessario. já que ela é a base(pai) das outras que as defivam.
Classes abstratas são implmentações que precisam ser executadas.
UpCasting: O UpCasting ocorre quando você converte um objeto de uma classe derivada para uma classe base. É como se você estivesse "subindo" na hierarquia de classes. Nesse caso, não há perda de informação, pois a classe derivada possui todos os membros da classe base. Um exemplo seria converter um objeto do tipo "Cachorro" (derivado) para o tipo "Animal" (base).
DownCasting: O DownCasting ocorre quando você converte um objeto de uma classe base para uma classe derivada. É como se você estivesse "descendo" na hierarquia de classes. Nesse caso, pode ocorrer perda de informação, pois nem todos os membros da classe derivada estão presentes na classe base. Para realizar o DownCasting de forma segura, é necessário verificar se o objeto é do tipo esperado antes de fazer a conversão. Um exemplo seria converter um objeto do tipo "Animal" (base) para o tipo "Cachorro" (derivado), desde que você tenha certeza de que o objeto é realmente um cachorro.
Nessa aula foi apresentada como podemos fazer comparação de objetos, utilizando o método Equals.
Foi implementado uma interface da classe system IEquatable<>. Que implementa o método Equal no onjeto a ser comparado.
internal class Program
{
private static void Main(string[] args)
{
var ObjetoA = new Pessoa(1, "William");
var ObjetoB = new Pessoa(1, "Stephane");
Console.WriteLine(ObjetoA.Equals(ObjetoB));
}
public class Pessoa : IEquatable<Pessoa>
{
public Pessoa(int id, string nome)
{
Id = id;
Nome = nome;
}
public int Id { get; set; }
public string Nome { get; set; }
//Tratar objeto nullable
public bool Equals(Pessoa? pessoa) => Id == pessoa?.Id;
}
}
Delegates ⇒ Algo para delegar a alguem para fazer.
Também chamado de Anonymous Methods.
Regra do delegetes, é preciso de a mesma assinatura dos metodos.
William henrique cirino |
---|