Introdução
A linguagem C# (c sharp) foi apresentada pela primeira vez em 2000 pela microsoft durante a Developers Conference. Foi concebida e criada principalmente por Anders Hejlsberg antigo Engenheiro da Borland que trabalhou na criação do Turbo Pascal e Delphi.
C# é uma linguagem criada quase do zero, baseada no C++ e Java, contudo o C# NÃO é uma cópia do Java como muitos dizem por aí. A linguagem C# juntou todas as melhorias em termos de produtividade e grau de programação e fora concebida para ser a melhor linguagem de programação da atualidade. C# possui características únicas ausentes em linguagens como Java, podemos citar a introdução de propriedades como elementos de linguagem e métodos get e set específicos para trabalhar com propriedades.
Algumas das características da Linguagem:
- Fortemente tipada;
- Orientada a Objetos;
- Sintaxe similar ao C++ e Java;
- Independente de plataforma;
- Possui gerenciamento automático de memória;
- Linguagem padrão para desenvolvimento de aplicações .NET.
Atualmente a linguagem C# se encontra na versão 3.0 na qual introduziu muitos recursos novos. Vejamos algumas das características inseridas nas versões da linguagem:
C# 2.0 (2005)
- Generics (Genéricos)
- Anonymous Methods (Métodos Anônimos)
- Nullable Types (Tipos Nulos)
- Partial Class (Classe parcial)
- Iterators
C# 3.0 (2007)
- Lambda Expressions
- Anonymous Types
- Type Inference
- Object Serialization
- Extension Methods
O C# 3.0 diferente da versão 2.0, trouxe recursos inovadores e revolucionários que não estão presentes em nenhuma outra linguagem de programação da atualidade. Muitos destes recursos foram criticados mas o que se sabe é que quem já adorava a versão 2.0 da linguagem agora não consegue mais ficar sem usar os recursos presentes na versão 3.0, e eles são mesmo ótimos.
A anatomia de um programa básico em C#
Vejamos um exemplo de um programa em C#:

Variáveis
Variáveis em C# são declaradas da seguinte forma: <tipo> <identificador>
Onde:
<tipo> pode ser int, string, char e etc;
<identificador> é o nome que você deseja dar a variável;
Exemplo:
int contador;
string palavras;
Recomenda-se sempre inicializar as variáveis que sejam de tipos primitivos:
Exemplo:
int contador = 0;
string palavras = “”;
Obs: (“” pode ser substituido por string.empty, uma forma mais elegante de string vazia)
Escopo de Variáveis
Quando falamos de escopo nos referimos a área de atuação de um determinado objeto. No mundo da programação a coisa não é diferente e o mesmo vale para as variáveis em C#.
Em C# o escopo de um objeto é definido quando o mesmo é criado dentro de um “bloco”. Um bloco é delimitado pelos caracteres “{” e “}”. Os elementos que forem declarados dentro desse bloco farão parte desse escopo.
Em C#, as variáveis só podem ser acessadas no escopo em que foram declaradas. Isso significa que se declararmos uma variável dentro de uma função/método, esta variável será visível somente dentro da própria função. A tentativa de referenciar uma variável fora do seu escopo resultará em um erro de compilação.
Escopos podem conter outros escopos. Em outras palavras uma variável declarada num bloco A que contem um Bloco B pode ser referênciada dentro do Bloco B, porem variáveis declaradas no Bloco B não podem ser referênciadas pelo bloco A conforme mostrado abaixo:

Operadores
O C# possui diversos operadores usados para vários fins. Abaixo segue uma lista dos mais conhecidos:
Relacionais:
- == (igualdade)
- != (diferente)
- > (Maior)
- < (Menor)
- >= (Maior ou igual)
- <= (Menor ou igual)
Atribuição:
- = (Atribuição)
- += (Atribuição e Adição)
- -= (Atribuição e Subtração)
- ++ (Incremento)
- – (Decremento)
Lógico
- && (and lógico)
- || (or lógico)
Estruturas Condicionais e de Repetição
If e Else: São estruturas usadas para testar condições e tomar decisões que afetam o fluxo da aplicação em tempo de execução. Exmeplo:
if(condicao)
{
escreva(“é verdadeiro”);
}
else
{
escreva(“é falso”);
}
Operador Ternário: Similar a esturura If/Else porem é mais resumido e mais confuso. exemplo:
variavel == 10 ? escreva(“é igual a 10″) : escreva(“não é igual a 10″)
for: estrutura condicional que permite definir uma condicao de controle e incremento. Exemplo
for(int i = 0; i < 10; i++)
{
// faça alguma coisa
}
while: estrutura condicional onde o controle de iterações deve ser feito no corpo da estrutura. Exemplo:
while(condicao)
{
// faca alguma coisa
}
foreach: permite definir uma variável que receberá uma referência a um elemento de um array. Exemplo:
int[] numeros = {1,2,3,4,5};
foreach(int numero in numeros)
{
escreva(numero);
}
Até o próximo artigo

