Valores e referências
-
Upload
daniel-araujo -
Category
Education
-
view
78 -
download
0
Transcript of Valores e referências
Linguagem de programação 4
Daniel de Sena Araújo
Escola Técnica CEPEP
Agenda
• Tipo valor;
• Tipo referência;
• ref;
• out;
• object;
• box;
• unbox.
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.
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.
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.
Parâmetros ref e out
static void Inc(int p){p++;
}static void Main(){int i = 42;Inc(i);Console.WriteLine(i);
}
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.
Parâmetros ref
static void Inc(ref int p){p++;
}static void Main(){int i = 42;Inc(ref i);Console.WriteLine(i);
}
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.
Parâmetros out
static void Inc(ref int p){p++;
}static void Main(){int i = 42;Inc(ref i);Console.WriteLine(i);
}
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.
Box
• Box: Cópia automática de um valor armazenado na pilha para o heap;
• Exemplo:
int i = 10;
object o = i;
Unbox
• Unbox: Extração do valor armazenado no heap para a pilha;
• Exemplo:
object o = 10;
int i = (int)o;
• Email: [email protected]
• GitHub: https://github.com/danieldesenaaraujo
• SlideShare: http://pt.slideshare.net/danieldesenaaraujo
Fim