O documento apresenta classes e métodos para modelar produtos, categorias, médicos, pacientes e veículos. Há também exemplos de uso de dicionários, listas, propriedades get/set, métodos estáticos, tratamento de exceções e formatação de dados com strings.
Criação e uso de classes, métodos e propriedades C
1.
2.
3. class produto {
public int ID { get; set; }
public string Nome { get; set; }
public decimal Preco { get; set; }
public double Qtde { get; set; }
}
class produto {
public int ID { get; set; }
public string Nome { get; set; } = "Produto novo";
public decimal Preco { get; set; } = 8.99M;
public double Qtde{ get; set; } = 10;
public bool Ativo { get; } = true;
}
4. class categoria {
public int ID { get; set; }
public string NomeCategoria { get; set; }
public bool Ativa { get; }
public categoria()
{
Ativa = true;
}
}
class categoria {
public int ID { get; set; }
public string NomeCategoria { get; set; }
public bool Ativa { get; } = true;
}
5. using static System.Console;
using static System.Math;
var anonimo = new {esporte = "kitesurf"};
// 1 - uso normal
//Console.WriteLine(anonimo.esporte);
//Console.ReadLine();
// 2 - remover using
WriteLine(anonimo.esporte);
var valor = 98.4563M;
WriteLine(Round(valor));
WriteLine(Abs(valor));
WriteLine(Sqrt(64));
ReadLine();
6. var cidades = new Dictionary<string, string> {
["SC"] = "Santa Catarina",
["SP"] = "São Paulo",
["RS"] = "Rio Grande do Sul"
};
WriteLine(cidades["SC"]);
foreach (var item in cidades)
{
WriteLine($"{item.Key} - {item.Value}");
}
7. var paises = new Dictionary<int, string> {
[1] = "Brasil",
[2] = "Australia",
[3] = "Nova Zelandia"
};
new Dictionary<int, produto> {
[1] = new produto { nome = "mouse", preco = 25},
[2] = new produto { nome = "ultrabook", preco = 2500},
[5] = new produto { nome = "impressora", preco = 500 }
}.ToList().ForEach(p =>
WriteLine($"índice: {p.Key} - {p.Value.nome} | preço:
{p.Value.preco}"));
8. class Medico {
public int ID { get; set; }
public string Nome { get; set; }
public List<Paciente> Paciente { get; set; }
}
class Paciente {
public int ID { get; set; }
public string NomePaciente { get; set; }
public string Historico { get; set; } = "nada relatado";
public string Remedios { get; set; }
public decimal ValorConsulta { get; set; }
}
9. WriteLine($"Dr(a) {objM.Nome} tem {(objM.Paciente != null ?
objM.Paciente.Count() : 0)} pacientes");
// substituir por
WriteLine($"Dr(a) {objM.Nome} tem {objM.Paciente?.Count ?? 0}
pacientes");
decimal? receita = 0;
if (objM.Paciente != null) {
receita = objM.Paciente.Sum(v => v.ValorConsulta);
}
// substituir por
decimal? receita = objM.Paciente?.Sum(v => v.ValorConsulta);
WriteLine(receita);
10. public static decimal CalculaPreco(
decimal preco, int qtde) =>
preco * qtde;
WriteLine($"Valor do produto no estoque {CalculaPreco(10, 15)}");
11. var c = new carro {ID = 1, Modelo = "JEEP", AnoFabricacao = 2007,
KmRodados = 800, Litros = 42 };
WriteLine($"O carro {c.Modelo}, fabricado em {c.AnoFabricacao} está
com {c.Idade()} anos. Rodando {c.KmRodados} km com {c.Litros}
litros, a média é de {c.Consumo():n2} km/litro.");
class carro {
public int ID { get; set; }
public string Modelo { get; set; }
public int Litros { get; set; }
public double KmRodados { get; set; }
public int AnoFabricacao { get; set; }
public double Consumo() => KmRodados / Litros;
public string Idade() => (DateTime.Today.Year - AnoFabricacao).ToString();
}
12. var c = new carro {ID = 1, Modelo = "JEEP", AnoFabricacao = 2007,
KmRodados = 800, Litros = 42 };
WriteLine(c.ToString());
class carro {
public int ID { get; set; }
…
public override string ToString() => $"{ID} : {Modelo}";
}
13. string empresa = "Microsoft";
WriteLine($"Empresa = {empresa}, email enviado às {DateTime.Now:hh}");
WriteLine($"Empresa = {empresa.ToUpper()}, by {DateTime.Today:dd/MM/yyyy}");
WriteLine($"email enviado às {DateTime.Now:hh:mm} - {DateTime.Today:dddd}");
WriteLine($"índice: {p.Key} - {p.Value.Nome} | preço: {p.Value.Preco}"));
WriteLine($"Valor do produto no estoque {CalculaPreco(10, 15)}");
WriteLine($"{c.Modelo} está com {c.Idade()} anos.");
WriteLine($"Média de {c.Consumo():n2} km/litro.");
WriteLine($"Média é de {(c?.ConsumoString() ?? "-----")} km/litro.");
WriteLine(c.ToString());
14. string produto = "peixe";
DateTime lancto = new DateTime(2012, 5, 15);
WriteLine($"o {produto} tem {Idade(lancto.Year)} anos");
WriteLine($"o {produto} tem {(Idade(2020))} anos");
public static int Idade(int parametroAno) {
if (parametroAno > DateTime.Today.Year) {
//throw new Exception($"ano invalido {parametroAno}");
throw new Exception($"ano invalido {nameof(parametroAno)}");
}
return DateTime.Today.Year - parametroAno;
}
16. try { // algum código
throw new Exception("tratar erro");
}
catch (Exception ex) when (ex.GetType() == typeof(SqlException)) {
Console.WriteLine("erro customizado do SQL");
}
catch (Exception ex) when (ex.Message.Equals("tratar erro",
StringComparison.CurrentCultureIgnoreCase)) {
Console.WriteLine("erro customizado da mensagem");
}
catch (Exception ex) when (ex is SecurityException || ex is IOException)
{
Console.WriteLine("erro de segurança ou IO");
}
catch (Exception) { Console.WriteLine("erro genérico");}