freeCodeCamp/guide/portuguese/miscellaneous/the-c-programming-language/index.md

10 KiB
Raw Blame History

title localeTitle
The C Programming Language A linguagem de programação C

Noções básicas

  • Configuração
  • Seu primeiro programa c #
  • Tipos e Variáveis
  • Declarações de Controle de Fluxo
  • Operadores
  • Cordas
  • Classes, Objetos, Interface e Métodos Principais
  • Campos e Propriedades
  • Modificadores de escopo e acessibilidade
  • Tratamento de exceções

Intermediário

  • Genéricos
  • Eventos, Delegados e Expressões Lambda
  • Quadro de coleção
  • LINQ

Avançado

  • Programação Assíncrona (Async e Await)
  • Biblioteca paralela de tarefas

O que há de novo no C # 6

  • Operador Nulo-Condicional
  • Inicializadores de Auto-Propriedade
  • Nameof Expressions
  • Funções e propriedades corporais da expressão
  • Outras características

Princípios Orientados a Objetos (OOP)

  • Encapsulamento
  • Abstração
  • Herança
  • Polimorfismo

Princípios sólidos

  • Princípio da responsabilidade única
  • Princípio Fechado Aberto
  • Princípio da Substituição de Liskov
  • Princípio de Segregação de Interface
  • Princípio de Inversão de Dependência

Melhores Práticas C #, Padrões de Design e Desenvolvimento Orientado a Testes (TDD)

Configuração

LinqPad é um bloco de rascunho .net para testar rapidamente seus trechos de código c #. A edição padrão é gratuita e uma ferramenta perfeita para iniciantes executar declarações de linguagem, expressões e programas.

Como alternativa, você também pode fazer o download do Visual Studio Community 2015, que é um IDE extensível usado pela maioria dos profissionais para criar aplicativos corporativos.

Seu primeiro programa c

//this is the single line comment 
 
 /** This is multiline comment, 
 compiler ignores any code inside comment blocks. 
 **/ 
 
 //This is the namespace, part of the standard .NET Framework Class Library 
 using System; 
 // namespace defines the scope of related objects into packages 
 namespace Learning.CSharp 
 { 
  // name of the class, should be same as of .cs file 
  public class Program 
  { 
    //entry point method for console applications 
   public static void Main() 
    { 
      //print lines on console 
      Console.WriteLine("Hello, World!"); 
      //Reads the next line of characters from the standard input stream.Most common use is to pause program execution before clearing the console. 
      Console.ReadLine(); 
    } 
  } 
 } 

Cada aplicativo de console C # deve ter um método Main, que é o ponto de entrada do programa.

Edite o HelloWorld no .NET Fiddle, uma ferramenta inspirada no JSFiddle, onde você pode alterar os trechos de código e verificar a saída por si mesmo. Note que isso é apenas para compartilhar e testar os trechos de código, não para serem usados no desenvolvimento de aplicativos.

Se você estiver usando o Visual Studio, siga este tutorial para criar o aplicativo de console e entender seu primeiro programa em C #.

Tipos e Variáveis

C # é uma linguagem fortemente tipada. Cada variável tem um tipo. Toda expressão ou declaração é avaliada como um valor. Existem dois tipos de tipos em c #

  • Tipos de valor
  • Tipos de referência.

Tipos de valor : Variáveis que são tipos de valor contêm valores diretamente. Atribuir uma variável de tipo de valor a outra copia o valor contido.

Editar no .NET Fiddle

int a = 10; 
 int b = 20; 
 a=b; 
 Console.WriteLine(a); //prints 20 
 Console.WriteLine(b); //prints 20 

Observe que em outras linguagens dinâmicas isso pode ser diferente, mas em C # isso é sempre uma cópia de valor. Quando o tipo de valor é criado, é criado um único espaço na pilha , que é uma estrutura de dados "LIFO" (last in, first out). A pilha tem limites de tamanho e as operações de memória são eficientes. Alguns exemplos de tipos de dados internos são int, float, double, decimal, char and string .

Digite | Exemplo | Descrição
--------- | -------------------------------------------------- --------------------------- | -------------------------------------------------- -------------------------------------------------- -----------------------------
Inteiro | int fooInt = 7; | Inteiro de 32 bits assinado
Longo | long fooLong = 3000L; | Inteiro de 64 bits assinado . L é usado para especificar que esse valor de variável é do tipo long / ulong
Duplo | double fooDouble = 20.99; | Precisão: 15 a 16 dígitos
Float | float fooFloat = 314.5f; | Precisão: 7 dígitos . F é usado para especificar que esse valor da variável é do tipo float
Decimal | decimal fooDecimal = 23.3m; | Precisão: 28-29 dígitos. Sua precisão e menor alcance torna apropriado para cálculos financeiros e monetários
Char | char fooChar = 'Z'; | Um único caractere Unicode de 16 bits
Booleano | bool fooBoolean = false; | Booleano - verdadeiro e falso
String | string fooString = "\"escape\" quotes and add \n (new lines) and \t (tabs); | Uma cadeia de caracteres Unicode.

Para uma lista completa de todos os tipos de dados integrados, veja aqui

Tipos de referência : Variáveis de tipos de referência armazenam referências a seus objetos, o que significa que armazenam o endereço no local dos dados na pilha , também conhecidos como ponteiros. Dados reais são armazenados na memória heap . Atribuir tipo de referência a outro não copia os dados, em vez disso, cria a segunda cópia de referência que aponta para o mesmo local no heap.

No heap, os objetos são alocados e desalocados em ordem aleatória, e é por isso que isso requer a sobrecarga do gerenciamento de memória e da [coleta de lixo](https://msdn.microsoft.com/en-us/library/hh156531(v=vs.110) .aspx).

A menos que você esteja escrevendo código não seguro ou lidando com [código não gerenciado](https://msdn.microsoft.com/en-us/library/sd10k43k(v=vs.100) .aspx), você não precisa se preocupar com a vida útil de seus locais de memória. O compilador .NET e o CLR cuidarão disso, mas ainda é bom manter essa mentalidade para otimizar o desempenho de seus aplicativos.

Mais informações aqui

Declarações de Controle de Fluxo

  • Se outra afirmação: Edite no .NET Fiddle

            int myScore = 700; 
            if (myScore == 700) 
            { 
                Console.WriteLine("I get printed on the console"); 
            } 
            else if (myScore > 10) 
            { 
                Console.WriteLine("I don't"); 
            } 
            else 
            { 
                Console.WriteLine("I also don't"); 
            }
    
  • Instrução Switch : Edite no Fiddle .NET

    usando o sistema;

    Programa de classe pública { public static void Main () { int myNumber = 0; switch (myNumber) { // Uma seção de opção pode ter mais de um rótulo de caso. caso 0: caso 1: { Console.WriteLine ("Caso 0 ou 1"); pausa; }

            // Most switch sections contain a jump statement, such as a break, goto, or return.; 
            case 2: 
                Console.WriteLine("Case 2"); 
                break; 
            // 7 - 4 in the following line evaluates to 3. 
            case 7 - 4: 
                Console.WriteLine("Case 3"); 
                break; 
            // If the value of myNumber is not 0, 1, 2, or 3 the 
            //default case is executed.* 
            default: 
                Console.WriteLine("Default case. This is also optional"); 
                break; // could also throw new Exception() instead 
        } 
     } 
    
    

    }

  • For & Foreach : Editar no .NET Fiddle

    para (int i = 0; i <10; i ++) { Console.WriteLine (i); // imprime 0-9 }

    Console.WriteLine (Environment.NewLine); para (int i = 0; i <= 10; i ++) { Console.WriteLine (i); // imprime 0-10 }

    Console.WriteLine (Environment.NewLine); para (int i = 10 - 1; i> = 0; i--) // loop de decremento { Console.WriteLine (i); // imprime 9-0 }

    Console.WriteLine (Environment.NewLine); //para (; ; ) { // Todas as expressões são opcionais. Esta afirmação // cria um loop infinito. * //
    }

  • Enquanto & do-while : Edite no .NET Fiddle

    // Continue o loop while até o índice ser igual a 10. int i = 0; enquanto (i <10) { Console.Write ("declaração While"); Console.WriteLine (i); // Grava o índice na tela. i + + // Incrementa a variável. }

    int number = 0; // funciona primeiro, até que a condição seja satisfeita, ou seja, termina quando o número é igual a 4. Faz { Console.WriteLine (number); // imprime o valor de 0 a 4 número ++; // Adicione um ao número. } while (number <= 4);