Aprender a programar em C# - Parte 1

Com o objetivo de levar um pouco do conhecimento de C# (C-Sharp) aos iniciantes em programação, estou iniciando uma nova série com o foco no aprendizado sobre a linguagem onde os iniciantes em programação acompanhar e aprender a programar em C#. Iremos abordar alguns detalhes básicos sobre a linguagem tais como sintaxe, tipos de dados, variáveis, operadores, controle de fluxo e laços de repetição.

1 - Introdução

O C# (C-Sharp) é uma linguagem de programação orientada a objeto e fortemente tipada criada pela Microsoft e tendo como principal desenvolvedor Anders Hejlsberg (o mesmo criador do Delphi e Turbo Pascal) como parte do Framework .NET que se encontra na atualmente na versão 5.0. É uma linguagem influenciada pelo C++, Java e Object Pascal.

2 - Sintaxe

Um código em C# será armazenado sempre em um arquivo com extensão “.cs” como por exemplo FolhaDePagamento.cs ou ConexaoDados.cs. Dentro dos arquivos C#, poderemos ter várias ou nenhuma namespaces e dentro dessas uma ou mais classes. Vamos a alguns exemplos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
namespace Br.CSharpBrasil.MeuNamespace
{
    public class FolhaDePagamento
    {
        public FolhaDePagamento()
        {

        }
    }

    public class ConexaoDados
    {
        public ConexaoDados()
        {

        }
    }
}

namespace Br.CSharpBrasil.OutroNamespace
{
    public class Faturamento
    {
        public Faturamento()
        {

        }
    }
}

Em uma classe C#, poremos utilizar algumas modificadores de acesso como: public ou internal

  • public: Esse modificador quando definida na classe a torna acessível publicamente, ou seja, não existe restrição para acesso a classe.
  • internal: Ao aplicar esse modificador a uma classe, essa passa a ser acessível somente dentro do mesmo arquivo do nosso assembly, ou seja, nenhum outro poderá ter acesso a classe.

Veja o exemplo de uso dos modificadores.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
namespace Br.CSharpBrasil.MeuProjeto
{
    public class MinhaClasse1
    {
        public MinhaClasse1()
        {

        }
    }

    internal class MinhaClasse2
    {
        public MinhaClasse2()
        {

        }
    }
}

3 - Tipos de dados

Agora que já conhece um pouco da estrutura de um arquivo C#, veremos os tipos de dados existente. Como mencionei anteriormente, o C# é uma linguagem fortemente tipada e possui alguns tipos de dados que poderemos utilizar para declara o tipo de nossas variáveis.

NOME CLASSE .NET TAMANHO INTERVALO
byte Byte 8 0 a 255
sbyte SByte 8 -128 a 127
int Int32 32 -2147483648 a 2147483647
uint Uint32 32 0 a 4294967295
short Int16 16 -32768 a 32767
ushort UInt16 16 0 a 65535
long Int64 64 -922337203685477508 a 922337203685477507
ulong UInt64 64 0 a 18446744073709551615
float Single 32 -3,4 x 10^28 a 3,4 x 10^38
double Double 64 ±5,0 x 10^-324 a ±1,7 x 10^308
char Char 16  
bool Boolean 8 true ou false
object Object    
string String    
decimal Decimal 128 (-7,9 x 10^28 a 7,9 x 10^28) / (10^(0 a 28))

4 - Variáveis

Para a criação das variáveis, é importante seguir algumas regrinhas básicas na hora de dar um nome a elas:

  • Não utilizar palavras reservadas do C#: while, for, if, do, event, etc…
  • Não é permitido caracteres especiais, espaços
  • Utilizar somente _ ou letras ou números
  • Obrigatoriamente deverá iniciar com _ ou letras
  • O nome da variável deverá ser único no contexto que ela for declarada.

Vamos a alguns exemplo de declaração de variáveis:

1
2
3
4
int contador = 890 ;
double preco = 3210.74D ;
bool existe = false ;
string site = "csharpbrasil.com.br" ;

6 - Operadores

Os operadores são termos ou símbolos usados em uma expressão.

CATEGORIA OPERADORES
Primários x.y, f(x), a[x], x++, x–, new, typeof, checked, unchecked, default(T), delegate, sizeof, ->
Unários +x, -x, !x, ~x, ++x, –x, (T)x, await, &x, *x
Aritméticos x * y, x / y, x % y, x + y, x – y
Shift (Troca) x « y, x » y
Relacional x < y, x > y, x <= y, x >= y, is, as
Igualdade x == y, x != y
E lógico x & y
OU Exclusivo Lógico x ^ y
OU Lógico x | y
E Condicional x && y
OU Condicional x | y
Condicional ?:
Atribuição x = y, x += y, x -= y, x *= y, x /= y, x %= y, x &= y, x |= y, x ^= y, x «= y, x »= y
Null-coalescing ??
Lambda =>

Como já conhece os operadores, vamos a alguns de uso:

1
2
3
4
/* OPERADORES ARITMETICOS */
int x = 6 * 5 / 3; // Resultado = 10
int y = 9 + 8 * 14; // Resultado = 121
int z = 15 % 7; // Resultado = 1

7- Controle de fluxo

São instruções que controlam o fluxo da execução do programa de acordo com certas condições. Sem eles o código é executado do começo ao fim sem respeitar nenhuma condição. São eles:

  • if: É utilizada para verificar se um condição é verdadeira. Esse é utilizando em conjunto com alguns dos operadores citados anteriormente.
  • else: É utilizado quando a condição testada do controle if não é verdadeira. Esse também pode ser utilizado em conjunto com if
  • switch: Esse controle de fluxo testa um parâmetro passado comparando-o com as condições existentes e direciona a saída para um deles. Quando não existe nenhuma condição, ele direciona para uma saída padrão.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
int x = 2 * 3;
int y = 15 / 3;

if (x >= 6)
{
    // Executada um instrução qualquer
}

if (y > 10)
{
    // Executada um instrução qualquer
}
else
{
    // Executada um instrução qualquer
}

switch (x % y)
{
    case 0:
        // Executada um instrução qualquer
        break;
    case 1:
        // Executada um instrução qualquer
        break;
    default:
        // Executada um instrução qualquer
        break;
}

8- Laços de repetição

Os laços de repetição ou loops como são normalmente conhecidos, são instruções de interação que podem ser executadas um determinado numero de vezes, ou enquanto uma condição não for satisfatória ou até mesmo até quando ele for interrompida.

  • do: É executado enquanto uma determinada condição não é atendida
  • for: É executado um determinado numero de vezes
  • foreach: É executado em cima de uma matriz ou coleção, ou seja, percorre todos os elementos
  • while: É executado enquanto uma determinada condição não é atendida
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* EXEMPLO DE EXECUÇÃO COM O LOOP "do" */
int x = 0;
do
{
    Console.WriteLine(x);
    x++;
} while (x <10);

/* EXEMPLO DE EXECUÇÃO COM O LOOP "for" */
for(int y = 0; y < 10; y++)
{
    Console.WriteLine(y);
}

/* EXEMPLO DE EXECUÇÃO COM O LOOP "foreach" */
int[] l = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
foreach(int i in l)
{
    Console.WriteLine(i);
}

/* EXEMPLO DE EXECUÇÃO COM O LOOP "while" */
int z = 0;
while (z <10)
{
    Console.WriteLine(z);
    z++;
}

Até aqui você conseguiu ver ó básico da linguagem C#. Para que possamos mesmo começar a entender mais, no próximo artigo começaremos com a criação de um exemplo em C# criado em um editor de texto qualquer e compilando diretamente em linha de comando com o compilador csc para entender mais um pouco do funcionamento.

Até o próximo artigo e bons estudos!