- Introdução bem básica sobre C#


O C# é uma das linguagens que você pode usar na plataforma .NET além dela você pode usar também VB .NET e qualquer implementação que use o .NET Framework , mas vou me ater somente as duas mais conhecidas e que são distribuídas com o Visual Studio.

Então veja bem , você primeiro escolhe qual linguagem vai usar , no nosso caso C# ou VB .NET , para na sequência criar os seus projetos na linguagem escolhida. Dessa forma você pode desenvolver aplicações Windows Forms usando C# ou VB .NET como pode também desenvolver aplicações para web , no caso ASP .NET , usando C# ou VB .NET.

Muita gente pensa que ASP .NET é uma linguagem, mas não é , veja a seguir uma definição sobe ASP .NET da WikiPédia:

ASP.NET é a plataforma da Microsoft para o desenvolvimento de aplicações Web e é o sucessor da tecnologia ASP.

É um componente do IIS que permite através de uma linguagem de programação integrada na .NET Framework criar páginas dinâmicas.

Não é nem uma linguagem de programação como VBScript, php, nem um servidor web como IIS, Apache.

O ASP.NET é baseado no Framework .NET herdando todas as suas características, por isso, como qualquer aplicação .NET, as aplicações para essa plataforma podem ser escritas em várias linguagens, como
C# e Visual Basic .NET.

fonte:
http://pt.wikipedia.org/wiki/ASP.NET

Veja também meus artigos : Minha primeira página ASP.NET     e    ASP.NET evolução ou enganação

Bem, mas meu assunto neste artigo é C#.

Então C# é uma linguagem que você pode usar para criar aplicações Windows Forms ou aplicações Web (ASP .NET).

Se você pretende usar C# como sua linguagem de programação não vai precisar gastar um centavo pois pode usar as seguintes ferramentas:

1- Visual C# 2008 Express Edition

2- SharpDevelop 2.2

Nota: É bom você saber que existe o projeto Mono que pretende ser uma implementação livre e multi-plataforma do .NET. O objetivo desse projeto é criar um framework de desenvolvimento opensource que seja robusto, confiável, fácil e agradável de ser utilizado.(http://www.mono-project.com/Main_Page)

Cada uma delas possui recursos diferentes sendo que a primeira parece ser mais fácil de usar mas cabe a você verificar e escolher qual deseja usar.

Com as ferramentas indicadas desenvolver aplicações fica muito simples mas neste artigo eu vou mostrar alguns aspectos básicos da linguagem que você deve saber embora talvez nunca precise usar.

Como já foi dito você pode criar programas usando C# e apenas um editor como o bloco de notas. Embora isso não seja lá muito produtivo você pode seguir este caminho se desejar. Neste caso você deverá seguir os seguintes passos:

1- Digitar o seu programa C# em um editor de textos como o Bloco de Notas ( NotePad++)  salvando-o com um nome qualquer e uma extensão .cs;
2- Compilar o programa usando o compilador de linha de comando C# chamado csc.exe;
3- Executar o programa;

Nota: Um Editor gratuito muito versátil é o NotePad++ que suporta várias linguagens de programação.

Antes de executar o csc.exe você pode precisar rodar o arquivo de lote vcvars32.bat que esta localizado na pasta de instalação do Visual Studio. Na minha máquina o caminho é: C:\Arquivos de programas\Microsoft Visual Studio 9.0\VC\bin

Um dos programas C# mais simples que você vai conseguir criar pode ser visto a seguir:

using System; 
 
class MainClass { 
   
  public static void Main() { 
    Console.WriteLine("O programa C# mais simples que existe. "); 
  
}

Abaixo temos um exemplo de código gerado pelo SharpDevelop:


Note que o programa inicia com uma chamada ao método Main();

A declaração de namespaces em C# é feita usando a palavra using;

Um bloco de código C# é delimitado por colchetes "{" e "}" um para abrir e outro para fechar. Se você abrir e não fechar o bloco vai ocorrer um erro.

Para evitar esquecer de fechar um bloco de código siga as seguintes regras:(se desejar...)

  1. Digite o parêntesis de abertura e fechamento na mesma linha;

    { }

  2. Então pressione ENTER duas vezes para abrir espaço entre os parêntesis;

    {

    }
  3. Agora digite o seu código no interior do bloco envolvido pelos parêntesis;

 

A linguagem C# é case sensitive, ou seja, faz diferença entre maiúsculas e minúsculas. Exemplos:

Declaração descrição
private string nomesuario;  define uma variável string nomeusario;
private string Nomeusuario;  define uma variável string Nomeusuario que é diferente da variável nomeusuario;
private string nomeUsuario;  define uma variável string nomeUsuario que é diferente das duas variáveis declaradas anteriormente;
private string NomeUsuario;  define uma variável string NomeUsuario que é diferente das demais variáveis declaradas anteriormente;

Além disso toda declaração deve possuir o sinal de ponto e vírgula (;) ao seu final.

Abaixo temos um exemplo de uma instrução que irá gerar o erro a esquerda, e a instrução correta a direita:

{
    Console.WriteLine(“Hello”)
}
  {
    Console.WriteLine(“Hello”);  
}

errado

 

correto

Se você não tomar cuidado com estes pequenos detalhes pode ficar quebrando a cabeça procurando erros que são na verdade erros de digitação.

Para documentar o seu código você pode usar tags XML e um comentário sendo que o comentário XML é sempre adicionado após barras triplas, conforme exemplo abaixo:

using System;

namespace DocumentationCommentsExample
{
    /// <summary>
    /// A documentation sample - the short description goes here
    /// </summary>
    /// <remarks>Where a longer description would go</remarks>
    class ClassExample
    {
        /// <summary>
        /// A member variable
        /// </summary>
        private string m_str;

        /// <summary>
        /// A method example
        /// </summary>
        /// <param name="val">a new value to be saved</param>
        /// <returns>the length of the string</returns>
        public int MethodExample( string val )
        {
            m_str = val;
            return val.Length;
        }
    }
}

Abaixo segue uma lista das tags XML mais usadas na documentação.( Lembre-se que com XML você pode criar suas próprias tags)

TAG PROPÓSITO de uso
<summary> … </summary> Breve descrição de uma classe, método ou propriedade.
<remarks> … </remarks> Descrição mais detalhada.
<para> ... </para> Permite delinear parágrafos dentro da tag <remarks>
<list type="…"> … </list> Permite usar marcadores para formatar uma descrição. Os tipos de marcadores podem ser “bullet”, “number” e “table”.
<example> … </example> Para disponibilizar um exemplo de como usar um método, propriedade ou outro membro da biblioteca.
<code> … </code> Para indicar que o texto incluído é código da aplicação.
<c> … </c> Para indicar que o texto incluído é código da aplicação. É usada para linhas de código que precisam ser separadas da descrição.
<see cref="member"/> Indica uma referencia a outro membro ou campo. O compilador verifica se o membro realmente existe.
<exception> … </exception> Para fazer a descrição de uma exceção.
<permission> … </permission> Para documentar a acessibilidade.
<param name="name"> … </param> Para documentar um parâmetro de um método.
<returns> … </returns> Para documentar um valor e seu tipo retornado de um método.
<value> … </value> Para descrever uma propriedade

A linguagem C# possui uma coleção de palavras chaves ou reservadas que são usadas pela linguagem conforme abaixo:

 abstract      as         base          bool         break
Byte          case       catch         char         checked
class         const      continue      decimal      default
delegate      do         double        else         enum
event         explicit   extern        false        finally
fixed         float      for           foreach      goto
if            implicit   in            int          interface
internal      is         lock          long         namespace
new           null       object        operator     out
override      params     private       protected    public
readonly      ref        return        sbyte        sealed
short         sizeof     stackalloc    static       string
struct        switch     this          throw        true
try           typeof     uint          ulong        unchecked
unsafe        ushort     using         virtual      volatile
void          while        

Note que as palavras reservadas são todas em caixa baixa (minúsculas) dessa forma o compilador não vai reconhecer a instrução Return pois a instrução correta é return.

Além disso C# contém duas categorias de tipos de dados embutidos:

1- Tipos por valor - consistem em duas categorias : Struts e Enumerations;
2- Tipos por referência - definidos por classes;

Qual a principal diferença ?

Em suma uma variável de valor ou Value-Type contém diretamente a informação e uma variável de referência (Reference-Type) contém uma referência a um endereço de memória onde esta a informação.

Value-Type

Reference-Type

Tipos de variáveis:

A seguir temos os tipos usado no C# com sua referência no .NET Framework:

Tipo C# Tipo .NET Framework Significado            
bool System.Boolean Representa valores true e false
byte System.Byte inteiro de 8-bit sem sinal
sbyte System.SByte  
char System.Char Um caractere
decimal System.Decimal Tipo numérico para cálculos financeiros
double System.Double Ponto flutuante de precisão dupla
float System.Single Ponto Flutuante de precisão simples
int System.Int32 Inteiro
uint System.UInt32 inteiro sem sinal
long System.Int64 Inteiro Longo
ulong System.UInt64 inteiro longo sem sinal
object System.Object objeto
short System.Int16 Inteiro Short
ushort System.UInt16 Um inteiro short sem sinal
string System.String Uma sequencia de caracteres

A seguinte tabela mostra os tipos de variáveis e os valores possíveis de se armazenar em cada uma delas.  

Tipo C# Valores possíveis de se armazenar
bool Verdadeiro ou Falso
byte 0 a 255 (8 bits)
sbyte -128 a 127 (8 bits)
char Um caractere (16 bits)
decimal ±1.0 × 10-28 a ±7.9 × 1028 (128 bits)
double ±5.0 × 10-324 a ±1.7 × 10308 (64 bits)
float ±1.5 × 10-45 a ±3.4 × 1038 (32 bits)
int -2,147,483,648 a 2,147,483,647 (32 bits)
uint 0 a 4,294,967,295 (32 bits)
long –9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 (64 bits)
ulong 0 a 18,446,744,073,709,551,615 (64 bits)
object Qualquer tipo.
short -32,768 a 32,767 (16 bits)
ushort 0 a 65,535 (16 bits)
string Seqüência de caracteres (16 bits por caractere)

Para encerrar vou relacionar alguns links onde você poderá encontrar material de estudo sobre C#:

Você pode baixar também o livro : Dissecating a C# Application  ( Chapter 18: Language Bindings (Download).)

Um bom estudo para você...

Eu sei é apenas C# mas eu gosto...


José Carlos Macoratti