In, Out, Ref e Params no C# |

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

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

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

    REF: algo que facilita o entendimento é estudar sobre Value Types e Reference Types. Em resumos, tipos primitivos (int, bool, ...) são value types, mas tipos mais complexos como classes, são reference type, não sendo necessário o uso do REF.

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

      Bom exemplo, não sabia disso. Muito obrigado 👏🏻👏🏻

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

      Verdade! int, bool, decimal e etc são structs, logo, são value types.

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

      Lembrando que isso varia de linguagem para linguagem

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

      @@tiagofelipeullrich6071 se é algo novo para vc, então será importante conhecer sobre Conversões boxing e unboxing no C#

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

      @@luan_maik Opa, irei pesquisar sobre!
      Comecei como dev Jr agora em 2022... Sou novato ainda kk
      Obrigado pela dica

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

    Really nice and helpful... Thanks!

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

      you're welcome 💜

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

    this is going to be great!

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

      💜

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

    👏🏻👏🏻👏🏻👏🏻

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

      💜

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

    Show Balta !

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

      💜💜💜

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

    IN: eu vejo que o caso de uso seria para evitar realocação de memória, ou seja, em contextos em que precise de escovação de bit para obter o máximo de performance.

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

      💜

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

    Muito obrigado pelo conteúdo! Muito informativo!

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

      💜

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

    Pessoalmente acho que isso torna o código muito mais legível e eficiente, uma pena que a maioria das empresas onde trabalhei nao usam e praticamente te proíbem de usar esse tipo de solução.

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

      💜💜💜

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

    Parabéns !!

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

      💜

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

    Excelente vídeo.

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

      💜

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

    Obrigado, Balta! :)

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

      💜

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

    Top demais, gostei muito da aplicação do params

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

      💜

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

    Ótimo vídeo, muito obrigado!!!

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

      💜

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

    Ref eu já tinha utilizado, inclusive foi muito útil. Params foi excelente eu confesso que eu não conhecia achei legal. Agora uma grande dúvida que eu tenho ainda com C# é só o uso de Delegates rs.
    Nunca precisei usar, ou talvez não utilizei ainda por não conhecer a fundo.

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

      💜💜💜💜

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

    Não conhecia, achei interessante o ref e o params

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

      💜💜💜

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

    o params só funcionar com array[ ] ? não da para usar um params List por exemplo ?

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

      Só via array

  • @flavioa.damaia1293
    @flavioa.damaia1293 2 ปีที่แล้ว +2

    Bacana, simples e objetivo. Mas qual seria o ganho entre ter, por exemplo, um List e o params Student [] na chamada do Método?

    • @matheus.antonio.c
      @matheus.antonio.c 2 ปีที่แล้ว +2

      eu vejo isso como muito positivo em um cenário onde você tem variáveis separadas que precisam ser passadas como uma lista pra uma função. Por exemplo, eu tenho uma lista que recebe um conjunto de usuários pra salvar no banco. Daí eu tenho um contexto em que eu crio especificamente usuários. Ao invés de ter o trabalho de criar uma List {usuario1, usuario2, usuario3 } e passar por parâmetro eu só chamo meu método CriarUsuario(usuario1, usuario2, usuario3).
      Também já teve um caso em que em um teste precisei verificar a chamada de um método de uma forma não convencional (não lembro 100% da sintaxe mas era algo como:)
      Verify("NomeDoMeuMetodo", param1, param2, param3).
      Provavelmente esse método verify usa de alguma forma esse params, dessa forma, eu não deixo ele dependente da quantidade de parâmetros de nenhum método.

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

      .ToArray

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

    Muito legal, embora para mim o out e o ref me pareceram iguais. rs

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

      Sim, porém o ref é de fora para dentro e o out de dentro para fora da função...

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

    Obrigado careca do Adrenaline

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

      hahahahaha, meu irmão Diego do Adrena!!! 🚀🚀

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

    Qual a diferença do modificadores Out e Ref? No fim das contas, o efeito parece ser o mesmo.

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

      A variável com out é obrigada a receber um valor dentro do método, enquanto a variável com ref, não. Além disso, na execução do método, o parâmetro com ref deve ser inicializado antes da execução, por exemplo, var minhaVariavel = null | DoSome(ref minhaVariavel), e o parâmetro com out pode ser inicializado na execução (Ex. DoSome(out var minhaVariavel)

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

      ref passa a referência de fora para dentro... out passa de dentro para fora...

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

    balta, como vc lida com e-mails... utiliza qual api para o envio dos e-mails

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

      Opa, expliquei bem isto no curso de Fundamentos do ASP.NET => balta.io/cursos/fundamentos-aspnet

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

    André cada ano que passa tá mais mito de conteúdo e mais novo de aparência kk Parabéns professor! E por gentileza, prepara esse que mencionou de ponteiros e referências.

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

      💜💜💜

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

      na hora de criar o balta, o senior nao revisou o PR, o estagiario colocou idade - - ao invés de idade++

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

    As keywords IN e OUT são usados em generics types para covariância e contravariância.

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

      Exatamente! 💜💜💜💜

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

    O Params é o "varargs" feito de forma elegante e não sorrateira.

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

      boaaaaaa 💜