Poderia me explicar está comparação? Não compreendi.
ContaCorrente outraConta = obj as ContaCorrente;
Poderia me explicar está comparação? Não compreendi.
ContaCorrente outraConta = obj as ContaCorrente;
Gabriel,
Desculpe, mas...
Então o instrutor usou desta forma para fazer dentro da atribuição uma conversão de OBJ para ContaCorrente sem precisar tratar uma exceção (erro) no processamento e guardar o valor dentro da variável "outraConta" que é uma variável do tipo "ContaCorrente".
Por favor, aprenda mais! Leia também os rápidos comentários diretamente dentro dos links abaixo:
==========================================================
Operadores de atribuição (referência C#)
Artigo
06/04/2022
2 minutos para o fim da leitura
https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/operators/assignment-operator
==========================================================
Operadores de comparação (referência do C#)
Artigo
06/04/2022
2 minutos para o fim da leitura
https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/operators/comparison-operators
==========================================================
What are object data types in C#? | O que são tipos de dados de objeto em C#?
Os tipos de objetos podem receber valores de quaisquer outros tipos, tipos de valor, tipos de referência, tipos predefinidos ou definidos pelo usuário. No entanto, antes de atribuir valores, ele precisa de conversão de tipo.
O tipo de objeto é a classe base final para todos os tipos de dados em C# Common Type System (CTS). Object é um alias para a classe System.Object.
Quando um tipo de valor é convertido em tipo de objeto, é chamado de boxing e, por outro lado, quando um tipo de objeto é convertido em um tipo de valor, é chamado de unboxing.
O seguinte é um exemplo -
object obj;
obj = 100; // this is boxing
==========================================================
[]'s,
Fabio I.
Desculpe Fábio,
Pois não especifiquei direito seria seria referente ao "obj as ContaCorrente;" que fiquei na dúvida.
Gabriel,
Okay, o nome disso ("obj as ContaCorrente;") é "conversão de tipo". Existem várias maneiras de converter tipos, mas depende muito do que está sendo convertido.
No caso acima está fazendo uma conversão de um OBJECT para um CLASSE "Conta Corrente", em outras palavras, de uma classe BASE para uma classe DERIVADA. No C#, essa conversão exige um operador de conversão.
O operador "as" (como) retorna o valor mesclado se o valor puder ser lançado para um tipo específico, senão ele retornará nulo.
Aprenda mais sobre este assunto lendo os seguinte artigos:
==========================================================
Conversão de tipo no .NET
Artigo
14/04/2022
31 minutos para o fim da leitura
https://docs.microsoft.com/pt-br/dotnet/standard/base-types/type-conversion
==========================================================
Conversões boxing e unboxing (Guia de Programação em C#)
Artigo
06/04/2022
6 minutos para o fim da leitura
https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/types/boxing-and-unboxing
==========================================================
Kunal Tandon
May 20, 2018
4 min read
Boxing and Unboxing (as and is operator) in C#
An article from www.knowledgescoops.com
https://medium.com/@kunaltandon.kt/boxing-and-unboxing-as-and-is-operator-in-c-4f0b4b4e1f32
==========================================================
Espero ter ajudado.
[]'s,
Fabio I.