terça-feira, 27 de fevereiro de 2007

Conhecendo C# - Tipos - Parte 5

Conhecendo C# - Tipos - Parte 5
Estrutura(Struct) e Classe(Class)

Em C#, uma estrutura(struct) é sempre tratado como tipo valor, enquanto uma classe(class) é sempre tratado como tipo referência. Ambos são parecidos, suportam construtores(constructors), constantes(constants), campos(fields), métodos(methods), propriedades(properties), indexadores(indexers), operadores(operators) e tipos aninhados(nested types). Mas as estruturas não têm suporte a recursos relacionados ponteiros, ou melhor referências, tais como membros virtuais, construtores parametrizados, ponteiro this e membros abstratos.

using System;
//Classe
public class MyClassRect{
//Campos
public uint x, y;

//Calculo da área do retângulo
public ulong Area(){ return x*y; }
}

//Estrutura
public struct MyStructRect{
//Campos
public uint x, y;

//Calculo da área do retângulo
public ulong Area(){ return x*y; }
}

class MainClass{
public static void Main(){

MyClassRect cl = new MyClassRect(); //alocado na heap
MyStructRect st; //alocado na stack

cl.x = 10;
cl.y = 5;

st.x = 10;
st.y = 5;

Console.WriteLine("Classe - {0} m X {1} m = {2} m²" ,cl.x,cl.y,cl.Area());
Console.WriteLine("Estrutura - {0} m X {1} m = {2} m²",st.x,st.y,st.Area());

}

Para compilar o exemplo acima, no prompt, digite csc Class_Struct.cs. Execute o programa digitando Class_Struct. A Figura 3, mostra compilação e execução da aplicação em C#.


Figura
3: Compilação e Execução do exemplo Class_Struct

Ir para o índice do Manual.
Próximo artigo:
.

Nenhum comentário:

Neobux