15
Linguagem de programação 4 Daniel de Sena Araújo Escola Técnica CEPEP

Valores e referências

Embed Size (px)

Citation preview

Page 1: Valores e referências

Linguagem de programação 4

Daniel de Sena Araújo

Escola Técnica CEPEP

Page 2: Valores e referências

Agenda

• Tipo valor;

• Tipo referência;

• ref;

• out;

• object;

• box;

• unbox.

Page 3: Valores e referências

Tipos valor

• Tipos de dados primitivos;

• No momento da declaração da variável, um espaço suficiente para armazenar aquele tipo de dado é alocado na memória;

• No momento da atribuição de valor a variável, o valor é copiado para esse espaço na memória.

Page 4: Valores e referências

Tipos referência

• Tipos de classe;

• No momento da declaração de um objeto, o compilador aloca uma pequena porção da memória suficiente para armazenar um endereço de memória;

• No momento da criação do objeto, um espaço na memória é alocado para ele, e o endereço desse espaço é gravado na primeira porção de memória alocada.

Page 5: Valores e referências

Parâmetros ref e out

• Quando você passa um argumento por parâmetro para um método, independente do tipo (valor ou referência), o parâmetro é iniciado com uma cópia do argumento.

Page 6: Valores e referências

Parâmetros ref e out

static void Inc(int p){p++;

}static void Main(){int i = 42;Inc(i);Console.WriteLine(i);

}

Page 7: Valores e referências

ref

• Usando a palavra ref como prefixo de um parâmetro, o parâmetro torna-se uma referência ao argumento real em vez de uma cópia do argumento.

Page 8: Valores e referências

Parâmetros ref

static void Inc(ref int p){p++;

}static void Main(){int i = 42;Inc(ref i);Console.WriteLine(i);

}

Page 9: Valores e referências

out

• A palavra chave out é uma abreviação de output (saída). Quando você passa um parâmetro out para um método, o método tem que atribuir um valor a ele.

Page 10: Valores e referências

Parâmetros out

static void Inc(ref int p){p++;

}static void Main(){int i = 42;Inc(ref i);Console.WriteLine(i);

}

Page 11: Valores e referências

Classe System.Object

• Um dos tipos referência mais importantes do .NET Framework;

• Todas as classes herdam da System.Object;

• É possível criar uma variável do tipo Object e usar para referenciar qualquer tipo de objeto;

• Para criar uma variável do tipo System.Object, podemos utilizar a palavra reservada object.

Page 12: Valores e referências

Box

• Box: Cópia automática de um valor armazenado na pilha para o heap;

• Exemplo:

int i = 10;

object o = i;

Page 13: Valores e referências

Unbox

• Unbox: Extração do valor armazenado no heap para a pilha;

• Exemplo:

object o = 10;

int i = (int)o;

Page 14: Valores e referências

• Email: [email protected]

• GitHub: https://github.com/danieldesenaaraujo

• SlideShare: http://pt.slideshare.net/danieldesenaaraujo

Page 15: Valores e referências

Fim