se resumir fica mais curto e mais legível, desta forma!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
se resumir fica mais curto e mais legível, desta forma!
using Alura.Adopet.Console.Modelos;
namespace Alura.Adopet.Console.Util
{
public static class PetAPartirDoCsv
{
public static Pet ConverteDoTexto(this string? linha)
{
string[]? propriedades = linha?.Split(';') ?? throw new ArgumentNullException("Texto não pode ser nulo!");
if (string.IsNullOrEmpty(linha))
throw new ArgumentException("Texto não pode ser vazio!");
if (propriedades.Length != 3)
throw new ArgumentException("Texto inválido!");
if (!Guid.TryParse(propriedades[0], out Guid petId))
throw new ArgumentException("GUID inválido");
if (!int.TryParse(propriedades[2], out int tipoPet) || (tipoPet != 0 && tipoPet != 1))
throw new ArgumentException("Tipo de Pet inválido!");
return new Pet(petId, propriedades[1], tipoPet == 0 ? TipoPet.Gato : TipoPet.Cachorro);
}
}
}
Olá, Willian. Tudo bem?
Muito obrigado por compartilhar o seu código aqui com a gente. Parabéns pelo trabalho. Continue com essa dedicação.
Ficou ótima a forma como você organizou a validação no método ConverteDoTexto. A sequência de verificações torna o código mais claro e evita erros futuros — isso mostra atenção aos detalhes e às boas práticas que o curso propõe.
Uma dica interessante para o futuro é usar a interpolação de string com string.IsNullOrWhiteSpace para deixar a verificação de vazio mais completa. Veja este exemplo:
if (string.IsNullOrWhiteSpace(linha))
throw new ArgumentException("Texto nao pode estar em branco.");
Esse código verifica se a string é nula, vazia ou composta apenas por espaços.