sexta-feira, 20 de agosto de 2010

Conceitos Básicos de C# - Aula 2

  • PRIMEIRO PROGRAMA
Escrevendo o tradicional programa Hello World, em C#:
Código 1: Hello World em C#

1 using System ;
2 class Hello {
3 public static void Main (){
4 Console . WriteLine ( " H e l l o W o r l d ! ! ! " );
5 }
6 }

A cláusula using referencia a as classes a serem utilizadas, System atua como namespace das classes. O namespace System contém muitas classes, uma delas é a Console. O método WriteLine, simplesmente emite a string no console.

Main

O método Main é o ponto de entrada de execução do seu programa. A classe que será executada inicialmente possui embutida a função estática Main. Uma ou mais classes podem conter a função Main, entretanto, apenas uma será o ponto de entrada, indicada na compilação pelo parâmetro /main:<tipo>, ou simplificando /m:<tipo>.

O método Main, pode ser declarado de 4 formas:
  1. Retornando um vazio(void): public static void Main();
  2. Retornando um inteiro(int): public static int Main();
  3. Recebendo argumentos, através de um array de string e retornando um vazio: public static void Main(string[] args);
  4. Recebendo argumentos, através de um array de string e retornando um inteiro: public static int Main(string[] args).
  • ESTRUTURA DE UM PROGRAMA
O esqueleto de um programa em C#, apresentando alguns dos seus elementos mais comuns, segue abaixo:
Código 2: Estrutura de um programa em C#

1 using System ;
2 namespace MathNamespace {
3 public class MathClass {
4 /* Main : exibe no prompt */
5 public static void Main ( string [] args ){
6 Math m = new Math ();
7 Console . WriteLine (m.Sum (1 ,1));
8 }
9 // <summary > Classe Math </ summary >
10 public class Math : Object {
11 public int Sum(int a, int b){
12 return (a+b);
13 }
14 }
15 }
16 }

A estrutura de um programa em C#, pode ser dividida em um ou mais arquivos, e conter:
  • Namespaces: são a forma lógica de organizar o código-fonte;
  • Tipos: classes, estruturas, interfaces, delegações, enums;
  • Membros: constantes, campos, métodos, propriedades, indexadores, eventos, operadores, construtores;
  • Outros: coméntarios e instruções.

  • VARIÁVEIS NA LINGUAGEM C#
Na linguagem C# as variáveis estão agrupadas em algumas categorias como:
  • Static: existe apenas uma única copia desta variável para todas as instâncias de uma classe. Uma variável static começa a existir quando um programa começa a executar, e deixa de existir quando o programa terminar.
  • Instance: existe uma copia para cada instância de uma classe. Uma variável Instance começa a existir quando uma instância daquele tipo e criado, e deixa de existir quando não houver nenhuma referencia aquela instância ou quando e método Finalize e executado.
  • Array: é uma matriz que e criada em tempo de execução.

  • Tipos de dados
Como toda linguagem de programação o C# também apresenta seu grupo de tipos de dados básico. Esses tipos são conhecidos como tipos primitivos ou fundamentais por serem suportados diretamente pelo compilador, e serão utilizados durante a codificação na definição de variáveis, parâmetros, declarações e até mesmo em comparações.

A Tabela 1 apresenta os tipos b´asicos da linguagem C# relacionados juntamente com os tipos de dados do .NET Em C#, todos eles possuem um correspondente na Common Language Runtime(CLR), por exemplo int, em C#, refere-se a System.Int32.
  • Tipos Valor e Tipos Referência
Os tipos de dados no C# são divididos em 3 categorias:
• Tipos valor(value types);
• Tipos referência(reference types);
• Tipos ponteiro(pointer types).

Tipos valor armazenam dados em memória enquanto tipos referência armazenam uma referência, ou o endereço, para o valor atual.
Quando utilizamos uma variável do tipo referência não estaremos acessando seu valor diretamente, mas sim um endereço referente ao seu valor, ao contrário do tipo valor que permite o acesso diretamente a seu conteúdo.
Os tipos ponteiro, apenas apontam para um endereço de memória.
  • Conversão de Tipos

Converter um tipo de dado em número ou em literal é comum em situações de programação. Devemos considerar alguns aspectos para a conversão de números:
• Como existem diversos tipos de números, inteiros, ponto flutuante ou decimal, os valores são convertidos sempre para o tipo de maior faixa de valores. Por exemplo, o tipo long é convertido para o ponto flutuante, mais é importante ressaltar que o contrario causa um erro.
• Os tipos de menor faixa são convertidos para os de maior faixa. Por exemplo, o tipo int
pode ser convertido para: long, float, double ou decimal.
• A conversão dos tipos de ponto flutuante(float, double) para decimal causa erro.
• A conversão entre os tipos com sinal e sem sinal de valores inteiros com o mesmo tamanho
causa erro. Por exemplo, entre o tipo int e unit.
Por exemplo:
Código 3: Exemplo de convers˜ao autom´atica de tipos

1 int VarInteiro = 32450;
2 long VarLong = VarInteiro ;
3 float VarFloat = VarLong ;
4 double VarDouble = VarFloat ;
5 decimal VarDecimal = VarLong ;
6 byte VarByte = ( byte ) VarInteiro ;
7 int VarInteiro = (int) 31.245 F;


  • O Objeto Convert
Em C# temos o objeto Convert que é usado para converter um tipo de dado em outro.
Os tipos de dados suportados são: Boolean, Char, SByte, Byte, Int16, Int32, Int64, UInt16, UInt32, UInt64, Single, Double, Decimal, DateTime e String.
Por exemplo:
Código 4: Exemplo de utiliza¸c˜ao do objeto Convert

1 double dNumber = 23.15;
2
3 int iNumber = System . Convert . ToInt32 ( dNumber );
4 bool bNumber = System . Convert . ToBoolean ( dNumber );
5 String strNumber = System . Convert . ToString ( dNumber );
6 char chrNumber = System . Convert . ToChar ( strNumber [0]) ;

  • Arrays
Um tipo array é uma matriz de valores do mesmo tipo, que é criada em tempo de execução, podendo ser acessada por meio de um índice. A declaração do array sempre faz o uso de um colchete( [ ] ) depois do tipo da variável. O uso da instruão new sempre deve ser utilizado, pois é obrigatório.
O tipo array pode ter diversas dimensões, o tamanho desta é definido pelo desenvolvedor, mas devemos saber que o primeiro índice é sempre zero.
No tipo array devemos sempre inicializar seus elementos, pois é obrigatório também. Veja
abaixo a forma de sintaxe para a declaração de arrays.
Para passar um argumento array para um método, especifique o nome do array sem usar colchetes e para que um método receba um array, a lista de parâmetros deve especificar que um array será recebido. Veja o seguinte exemplo:
Algumas Propriedades e Métodos dos Arrays:
• obj.Length −! Tamanho do vetor;
• Array.IndexOf(Array vetor, object value) −! Procura a primeira ocorrência de valor em vetor;
• Array.LastIndexOf(Array vetor, object value) −! Procura a última ocorrência de valor em vetor;
• Array.Sort(Array vetor) −! Ordena um vetor crescentemente;
• Array.Reverse(Array vetor) −! Ordena um vetor decrescentemente.

Clique aqui e veja livros sobre o Visual Studio.

Contribua com este blog, doe qualquer quantia.