Você está na página 1de 2

24/05/12

.NeT - Conceitos : Memria da aplicao , Stack ,Heap e variveis

.NET - Conceitos: memria da aplicao , Stack , Heap e variveis.


A memria do seu computador o local fsico onde so colocados as instrues e dados que o microprocessador pode processar. Quando o seu computador esta em operao normal esta memria contm muitas partes do sistema operacional e alguns programas de aplicaes e dados relacionados que esto sendo usados.

A memria da aplicao poro da memria do computador alocado pelo sistema operacional para rodar a aplicao. Esta memria pode ser alocada em duas partes : stack e heap.

Uma varivel um local na memria ao qual demos um nome. Voc declara uma varivel definindo um nome a um local na memria e definindo o tipo de dados que pode ser usado com a varivel . Ex: Dim nome As String. Um tipo de dados um conjunto de valores que a varivel pode assumir. Como exemplo de tipos de dados podemos citar : Integer , String , Boolean , Button , TextBox , Form , etc. Dim intValor As Integer = declara uma varivel chamada intValor do tipo Integer

No VB.NET os tipos de dados podem ser classificados em tipos de dados por valor e tipos de dados por referncia. A seguir alguns tipos de dados e sua classificao: Tipos de dados por Valor = Byte , Integer , Single , Double , Boolean , Char , Struct , Enum Tipos de dados por referncia = Array , Button , Form , DataSet , Font A categoria do tipo de dados determina como ele ser alocado na memria. Tipos de dados por valor Uma varivel declarada como um tipo de dados por valor estruturada na memria para conter um valor diretamente. Vejamos : - Um Integer um tipo de dados por valor Dim intValor As Integer intValor = 1

Depois de rodar o cdigo acima o resultado uma varivel na memria chamada intValor que contm o valor 1 diretamente

Tipos de dados por referncia Uma varivel declara como um tipo de dados por referncia estruturada para conter uma referncia para um objeto atual na HEAP. Uma referncia um endereo de memria onde um objeto existe na Heap. - Um Button um tipo de dados por referncia
www.macoratti.net/vbn_conc.htm 1/2

24/05/12

.NeT - Conceitos : Memria da aplicao , Stack ,Heap e variveis

Dim mButton As Button

Depois de rodar o cdigo acima o resultado uma varivel na memria chamada mButton que contm uma referncia para um objeto button na heap. Neste momento o valor da varivel mButton null.

mButton = New Button() A linha de cdigo acima , depois de executada , far com que a varivel mButton contenha uma referncia a um objeto Button na Heap. A referncia um valor inteiro que indica o endereo onde o objeto Button comea na heap. Agora acho que j deu para voc entender o que esta ocorrendo quando temos a mensagem de erro :

An unhandled exception of "System.NullReferenceException" occurred...


Este erro ocorre quando uma tentativa e feita para usar uma varivel de referncia que foi declarada mas no possui ainda uma referncia para o objeto atual. A varivel contm uma referncia NULL . Para provocar o erro basta executar o cdigo abaixo: 1 Dim mButton As Button 2 mButton.ForeColor = Color.White - A primeira linha de cdigo declara a varivel mButton como um tipo por referncia que pode conter uma referncia para um objeto Button. - A segunda linha tenta usar mButton antes que uma referncia seja atribuda ao objeto button. O que teremos na memria o seguinte :

O interpretador no pode encontrar um objeto Button na varivel mButton e ento dispara a exceo. Existe um NULL armazenado na varivel mButton e no uma referncia a um objeto button na Heap.

Para corrigir o problema basta declarar : mButton = new Button() antes de tentar alterar a cor do boto. At o prximo artigo VB.NET!!!

Jos Carlos Macoratti

www.macoratti.net/vbn_conc.htm

2/2

Você também pode gostar