Anatomia de um programa C#

by Fernando Nomellini 16. abril 2010 14:55

O programa mais simples que se pode criar em C# está abaixo:

class Program

{

    static void Main(string[] args)

    {

    }

}

 


Acima declaramos uma classe chamada Program. Esta classe contém um método estático (static), que não retorna nada (void) com o nome Main. Este método aceita um arqumento chamado args, que é uma lista de strings.

Este programa minúsculo não faz nada, mas apresenta conceitos fundamentais. Todo programa em C# é uma classe. Todo programa em C# que é para ser rodado via console (DOS), deve ter obrigatoriamente um ponto de entrada. Um lugar no qual o .NET Framework saiba onde começar a rodar o programa. Seu programa pode ter centenas de classes, mas apenas uma classe deve conter o método “Main”.

Veremos o que são métidos estáticos quando falarmos de orientação a objetos. Por hora, basta saber que qualquer programa que iremos fazer para console deve ter um método static void Main(string[] args).

Este programa não faz nada, mas vamos mudar isso, fazendo ele mostrar no console as palavras “Hello, world!”.

Devemos anterar o método Main:

class Program

{

    static void Main(string[] args)

    {

        System.Console.WriteLine("Hello, World!");

    }

}

 

 

Quando rodamos este programa, o .NET Framework procura pelo ponto de entrada, que é o método main, e, quando encontra, invoca este método.

O nosso método pretende imprimir uma linha no console. Portando iremos usar o método WriteLine da classe Console. A Classe Console encapsula entrada e saída de informações para a nossa linha de comando (DOS).

Quem escreveu esta classe Console para mim ? A Microsoft, em seu .NET Framework. O .NET Framework é composto de centenas de classes prontas para nosso uso, precisamos apenas saber qual classe usar em qual situação.

Como existem centenas de classes, muitas vezes podemos escrever uma classe com  o mesmo nome de uma já existente, e desta maneira, o compilador não saberia qual classe desejamos usar, se é a nossa ou se é a da .NET Framework ou se é uma já desenvolvida por outra pessoa da equipe. Pensando nisso que surgiu o conceito de namespace.

Namespace ajudam a resolver esse problema criando um contêiner nomeado para outros identificadores, por exemplo, classes. Duas classes com o mesmo nome não serão confundidas se elas estiverem em namespaces diferentes.

namespace Hello

{

    class Program

    {

        static void Main(string[] args)

        {

            System.Console.WriteLine("Hello, World!");

        }

    }

}

 

 

Criamos um namespace Hello, e dentro deste namespace, nossa classe Program. Agora, podemos ter outras classes com o mesmo nome, desde que estejam em outro namespace.

Como nos referenciamos a uma classe que está em um namespace diferente ?

Utilize o padrão: namespace.classe

Foi por isso que usamos o namespace System antes da classe Console no nosso programa.

System é o namespace. Console é o nome da classe. WriteLine é o nome do método.

Para encurtar nosso programa, podemos declarar que desejamos usar um determinado namespace em nosso programa, e a partir daí, podemos omitir o namespace na hora de utilizar uma classe. Fazemos isso com a palavra reservada using.

Nosso programa ficaria assim:

using System;

 

namespace Hello {

  class Program

  {

      static void Main(string[] args)

      {

          Console.WriteLine("Hello, World!");

      }

  }

}

 

 

Note que a partir do momento em que declarei o namespace System no início do programa, não precisei mais digitá-lo para acessar a classe Console.

Tags:

C Sharp Básico

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen

Fernando Nomellini

39 anos, é Engenheiro eletrônico com ênfase em computadores e é coordenador de desenvolvimento na Datamace Informática. Começou a programar BASIC em 1984 em seu TK-85. Atualmente programa em C#, mas nunca abandonou o PHP. Feliz da vida por ter uma linda filha e uma esposa maravilhosa

Calendar

<<  fevereiro 2012  >>
seteququsedo
303112345
6789101112
13141516171819
20212223242526
2728291234
567891011

View posts in large calendar