Operadores as e is no C# | por André Baltieri

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ธ.ค. 2024

ความคิดเห็น • 37

  • @baltaio
    @baltaio  2 ปีที่แล้ว +2

    🔥CURSO GRATUITO DE C# E .NET🔥
    👉 balta.io/cursos/fundamentos-csharp?TH-cam&

    • @willian-rattis
      @willian-rattis 2 ปีที่แล้ว

      Balta eu vi que você esta utilizando o Rider. Eu gostei bastante desta fonte, etc da forma como ficou este ambiente. Eu gostaria de replica-lo no meu MacOS é algo simples de fazer? 
      Do mais, parabéns! Sempre te recomendo pelo mesmo motivo. Consegue explicar tudo de forma simples.

  • @AlbertoMonteiro
    @AlbertoMonteiro 2 ปีที่แล้ว +15

    Fala Balta, blz.
    Para incrementar o conteudo gostaria de fazer mas considerações.
    Os operadores as e is são bem antigos, o C# já nasceu desde a versão 1.0 com eles, e a partir da versão 7.0 o is veio recebendo mais "poderes".
    Teve um ponto que você fez que infezlimente não funciona
    var documento = new Documento();
    var cpf = (CPF)documento;
    Apesar de compilar, ele quebra em runtime, pq não é possível converter Documento em CPF.
    Já a linha abaixo, funciona:
    var cpf = documento as CPF;
    Nesse caso pq qnd se usa o as, ele tenta converter, caso não consiga, devolve null.
    E ai uma das evoluções do is, permitiu trocar esse código:
    var documento = new Documento();
    var cpf = documento as CPF;
    if(cpf != null)
    {
    ...codigo
    }
    Por isso:
    var documento = new Documento();
    if(documento is CPF cpf)
    {
    ...codigo
    }
    Nesse caso, cpf só existe no bloco do if!!
    Da para fazer bem mais coisas, é um mundo de possibilidades lindas!!!
    Outro detalhe sensacional entre usar is vs GetType == typeof é que o is respeita a herança, então
    record Documento();
    record CPF() : Documento;
    var cpf = new CPF();
    cpf is Documento => true!!
    cpf.GetType() == typeof(Documento) => false!!!!

    • @baltaio
      @baltaio  2 ปีที่แล้ว +1

      Obrigado Alberto

    • @joaberochadel8219
      @joaberochadel8219 ปีที่แล้ว

      realmente não funciona o cast dessa forma.

  • @jheysonlima
    @jheysonlima 2 ปีที่แล้ว +6

    Balta, um detalhe interessante tbm é que o operador "is" não pode ser sobrescrito, diferente do "==", então um outro motivo pra usar "is" pode ter um ganho na garantia de intenção, já que não existe o risco de ele ter sido sobrescrito nas comparações de null por exemplo... Conteúdo top como sempre, vlw

    • @baltaio
      @baltaio  2 ปีที่แล้ว +2

      Sensacional, muito obrigado pela observação 💜💜

  • @willian-rattis
    @willian-rattis 2 ปีที่แล้ว +1

    Legal demais Balta, dá muito mais semântica a um código. A equipe do C# está de parabéns!
    Você sempre está de parabéns! Eu acho que você tem o poder de explicar as coisas sempre de forma muito simples!

    • @baltaio
      @baltaio  2 ปีที่แล้ว

      Muito obrigado 😁

  • @jm-th4xm
    @jm-th4xm ปีที่แล้ว +1

    Esses recursos já tinha no VB há um bom tempo, agora só falta trazer os operadores And Or e Xor.

  • @xBrunoExtreme
    @xBrunoExtreme 2 ปีที่แล้ว +2

    Outro vídeo excelente ! Com certeza irei utiliza-los quando migrarem as aplicações da minha empresa de 3.1 para 6

    • @baltaio
      @baltaio  2 ปีที่แล้ว

      💜

  • @eduardorezende8462
    @eduardorezende8462 ปีที่แล้ว +1

    Muito bom !

  • @paulosk1791
    @paulosk1791 2 ปีที่แล้ว +1

    Balta, boa tarde!
    Muito boas as dicas.
    VLW... 👍🏻

    • @baltaio
      @baltaio  2 ปีที่แล้ว

      Valeu 😀

  • @joaofarias319
    @joaofarias319 2 ปีที่แล้ว +3

    Balta, qual editor de texto você está usando? Comecei a te acompanhar tem poucas semanas, estou fazendo o curso de fundamentos do C#, trabalho como Dev fullstack júnior e usamos muito .Net no trampo, seu curso de fundamentos está ajudando muito a consolidar o básico de c# na cabeça, e finalizando vou assinar o plano e seguir a carreira backend c# da sua plataforma! Já comecei a estudar c# em outras 3 plataformas famosas, e a sua foi a que mais me agradou, sua forma de explicar é simples e objetiva!

    • @baltaio
      @baltaio  2 ปีที่แล้ว

      Obaaa, que bom, seja bem-vindo! Estou usando o Rider, mas para estudar, no início recomendo o VSCode por ser gratuito e te ajudar menos... Eu comento sobre isto no nosso curso gratuito de C#, o link está na descrição deste vídeo!

  • @TheFernandoBogado
    @TheFernandoBogado 2 ปีที่แล้ว +1

    conteúdo muito bom.

    • @baltaio
      @baltaio  2 ปีที่แล้ว +1

      💜

  • @brunomoura1918
    @brunomoura1918 2 ปีที่แล้ว +1

    Alguém sabe que IDE é essa que o Balta usa?

    • @baltaio
      @baltaio  2 ปีที่แล้ว +1

      Rider da JetBrains

  • @matheus014610
    @matheus014610 2 ปีที่แล้ว +1

    Olá Balta, pode me ajudar em uma coisa? sou dev back-end em C#/.NET e estou querendo me aventurar no front-end, meu conhecimento em front-end é mínimo, gostaria de saber por onde começar, tem alguma dica?

    • @baltaio
      @baltaio  2 ปีที่แล้ว

      Com certeza por HTML, CSS e JS... são a base do front-end :)

  • @Gustavoferreira73
    @Gustavoferreira73 2 ปีที่แล้ว +1

    A minha pergunta pode parecer meio idiota mais vamos lá.
    Eu preciso usar um token do Telegram em um site, porém este token não pode ficar no JavaScript por motivos óbvios, como eu faço para deixar esse token no C# e como eu vou fazer para o site validar o token consultado a chave no C# ?

    • @baltaio
      @baltaio  2 ปีที่แล้ว +1

      Depende do que você precisa fazer... tudo que fica no cliente (JS, Browser) é visível via Dev Tools... então não tem como deixar o token ali fixo... conta mais sobre seu cenário que tentamos ajudar melhor!

    • @Gustavoferreira73
      @Gustavoferreira73 2 ปีที่แล้ว

      @@baltaio então a minha duvida e essa de um iniciante, faz pouco tempo que eu comecei a aprender csharp.
      Como eu faço para o site ter acesso ao csharp, tenho que criar um servidor local para essa comunicação acontecer?
      Porquê na prática o que acontece é o seguinte, quando o usuário tá dentro do site e seleciona uma determinada opção, eu sou avisado no telegram que o usuário X escolheu a opção Y, mais esse aviso acontece atualmente com o token lá no JavaScript, sim ele está exposto e eu tenho conhecimento dos riscos e quero mudar isso.
      PS eu estou aprendendo C# .NET com as suas aulas e parabéns pela suas disciplinas, mais ainda não cheguei nas aulas que fala sobre o site ASP .NET acredito que é lá aonde eu vou aprender sobre sites com .NET, porém tenho urgência em mudar isso.

  • @jefersonfurrier4104
    @jefersonfurrier4104 2 ปีที่แล้ว +1

    eu acho que entendi o que ele faz, mas não consigo imaginar um caso na qual eu consiga usar o IS numa linguagem fortemente tipada, saberia algum exemplo?

    • @baltaio
      @baltaio  2 ปีที่แล้ว

      Mostrei alguns exemplos no vídeo!

  • @carlosvieiratech
    @carlosvieiratech 2 ปีที่แล้ว +1

    O as e o is só funciona no .Net 6 ou no .Net 5 pra baixo ele funcionária também?

    • @baltaio
      @baltaio  2 ปีที่แล้ว +1

      Funcionam no .NET 5, porém o "is not" se não me engano é apenas no 6!

    • @carlosvieiratech
      @carlosvieiratech 2 ปีที่แล้ว

      @@baltaio valeu balta, obrigado. Em breve, muito em breve, vou ser assinante do teu curso, não vejo a hora rsrsrs

  • @joaocavalcantesp
    @joaocavalcantesp 2 ปีที่แล้ว +1

    Balta, a partir de qual versão essa sintaxe está disponível ?

    • @jheysonlima
      @jheysonlima 2 ปีที่แล้ว +2

      Cara, se n me engano entrou esse esquema de is começou com o pattern matching do c# 7, o do as já tem mais tempo mas n sei qnd começou, mas lembro que já usava no unity antigo...

    • @baltaio
      @baltaio  2 ปีที่แล้ว +1

      Se não me engano foi C# 8 e 9!

    • @emanuelmartins9508
      @emanuelmartins9508 2 ปีที่แล้ว

      o is é mais antigo, mas o is not só no novo.