Boxing e unboxing

Description

70-483 C# Flashcards on Boxing e unboxing, created by Thiago Russo on 01/05/2017.
Thiago Russo
Flashcards by Thiago Russo, updated more than 1 year ago
Thiago Russo
Created by Thiago Russo almost 7 years ago
0
0

Resource summary

Question Answer
C# é uma linguagem tipada? C# é em sua maior parte uma linguagem tipada estática. Isto significa que o compilador C# irá verificar o tipo de cada expressão. Isso ajuda a encontrar erros como tentar guardar um tipo em outro tipo (como uma string em um int). Pode ser que você saiba q um tipo pode ser usado com outro tipo e você quer dizer isso para o compilador. Devido a isso, às vezes vc tem q fazer conversão entre os tipos. Mas, parte do C# n é de tipagem estática. A nova palavra-chave dynamic (C# 4.0) permite anular (override) na verificação do ambiente de compilação e trabalhar com C# como uma linguagem fracamente tipada.
Tipo valor x tipo referência A diferença importante entre um tipo de valor e um tipo d referência é q o tipo de valor armazena seu valor diretamente. Um tipo de referência armazena uma referência que aponta para um objeto no heap que contém o valor. Ao trabalhar com tipos de valor em C#, às vezes você deseja armazenar um tipo de valor dentro de um tipo de referência.
Boxing e unboxing boxing = processo de pegar um tipo e valor, colocando-o dentro de um novo objeto no heap, e armazenar uma referência na stack para ele. unboxing = exatamente o oposto: Pega o item da stack e retorna um tipo de valor que contém o valor da (heap).
Boxing e unboxing exemplo
o que acontece qdo escrevemos uma operação de unbox inválida? runtime lançará InvalidCastException Vc n vai ver o erro em tempo de compilação pq o compilador confia q vc vai fazer a chamada corretamente. Em tempo de execução, no entanto, a conversão falha, e uma exceção é lançada.
como é feita a conversão boxing => unboxing e vice-versA? Se chamarmos GetType(), o que ocorre? unboxing, você precisa converter explicitamente seu objeto de um tipo referência para um tipo de valor. Boxing q não é óbvio. Se chamar GetType sempre faz "boxing" do seu tipo de valor porque GetType é definida apenas em um objeto e n pode ser substituído. Boxing ocorre em outras situações tb: como uma surpresa é que um tipo de valor é "boxing" qdo vc o usa como uma interface. Ex: IFormattable x = 3;
boxing x unboxing como é o desempenho dessas operações? Que recurso do .Net pode ajudar em coleções? Há algumas complicações de desempenho com cada operação de box e unbox: Ao usar as coleções não genéricas para armazenar um tipo de valor, você tem um muitaaaaas dessas operações. As operações de boxing e unboxing podem prejudicar o desempenho; no entanto, c/ o apoio de generics, isso é menos um problema pq vc pode armazenar tipos de valor em uma coleção s/ fazer boxing neles.
Show full summary Hide full summary

Similar

Porova teórica C# mod l
Cursos Professor Jonatã
Linguagem C#
Alex Araujo Furado
Prova teorica C# mo ll
Cursos Professor Jonatã
Entity framework - code first
José Fernandes
Flashcard Módulo 1 - XAMARIN LATINO AMERICA
Marcone Barbosa
Entity framework
José Fernandes
C# and ASP.NET
Kalebi Fiorentini
Linguagens de programação
Rodrigo Barbosa7452
Conceitos do ASP.NET CORE (Incompleto)
José Fernandes Rezende Neto
Dates and times .NET
Felipe Couto Viola
Fluxo Game UC 8
Lucas Coluzzo