kb.erickguedes.com
C#: Matching Engine — Projeto Mercado Financeiro

Introdução ao C# e .NET

Aula 1 de 7

O que é C#?

C# é uma linguagem moderna, tipada, multiparadigma da Microsoft, lançada em 2000 com a plataforma .NET.

Console.WriteLine("Olá, Matching Engine!");

.NET SDK

# Verificar instalação
dotnet --version
dotnet --list-sdks

# Criar projeto
dotnet new console -n MatchingEngine
cd MatchingEngine
dotnet run

Tipos e Variáveis

// Tipos por valor
int quantidade = 100;           // 32-bit
long volume = 1_000_000;        // 64-bit
double preco = 15.50;           // ponto flutuante
decimal valor = 1500.99m;       // precisão financeira (usar sempre para dinheiro!)
bool ativo = true;
char tipo = 'B';

// Tipos por referência
string simbolo = "AAPL";
var ativo2 = "MSFT";            // inferência de tipo

// Nullable
int? limite = null;
decimal? precoMaximo = null;

// Constantes
const int LOTES_POR_CONTRATO = 100;

Estruturas de Controle

// if
if (quantidade > 0)
{
    Console.WriteLine("Ordem válida");
}
else if (quantidade == 0)
{
    Console.WriteLine("Quantidade zero");
}
else
{
    Console.WriteLine("Quantidade inválida");
}

// switch
char lado = 'C';
string descricao = lado switch
{
    'C' => "Compra",
    'V' => "Venda",
    _ => "Desconhecido"
};

// loops
for (int i = 0; i < 5; i++)
    Console.WriteLine(i);

foreach (var item in new[] { "AAPL", "MSFT", "GOOG" })
    Console.WriteLine(item);

Métodos

public static decimal CalcularValor(int quantidade, decimal preco)
{
    return quantidade * preco;
}

// Expression-bodied
public static decimal CalcularTaxa(decimal valor, decimal taxa)
    => valor * taxa;

// Parâmetros opcionais
public void EnviarOrdem(string simbolo, int quantidade, string tipo = "LIMITE")
{
    Console.WriteLine($"Ordem {tipo}: {quantidade} {simbolo}");
}

C# é fortemente tipado. Use decimal para valores financeiros, não double. var é conveniente para tipos óbvios, mas prefira tipos explícitos em APIs públicas.