Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Existe alguma má pratica nesse código?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CadastroConsultorio
{
    public class Cadastro_Paciente
    {
        public string nome;
        public int idade;
        public double peso, altura;
    }
}
using CadastroConsultorio;

Cadastro_Paciente paciente_01 = new Cadastro_Paciente();
paciente_01.nome = "Joao Sarchis";
paciente_01.idade = 30;
paciente_01.altura = 1.70;
paciente_01.peso = 83;

Console.WriteLine("Nome:{0}\nIdade:{1}\nAltura:{2}\nPeso(kg):{3}",paciente_01.nome,paciente_01.idade,paciente_01.altura,paciente_01.peso);
2 respostas

O código apresentado não é uma má prática em si, mas existem algumas melhorias que podem ser feitas para deixá-lo mais organizado e seguro.

Encapsulamento de dados: os campos públicos (nome, idade, peso e altura) podem ser encapsulados em propriedades, com a criação de métodos get e set, garantindo a segurança dos dados e permitindo validações de entrada.

Criação de construtor: para garantir que todos os objetos da classe Cadastro_Paciente serão criados com valores iniciais, é importante criar um construtor que inicialize as propriedades da classe.

Utilização de tipos de dados específicos: os campos idade, peso e altura poderiam ser definidos como tipos específicos, como idade como byte ou short, peso e altura como float ou decimal.

Utilização de nomenclatura: a classe e as propriedades poderiam ter nomes mais descritivos, seguindo padrões de nomenclatura de código.

Segue abaixo uma versão do código com as melhorias mencionadas: `using System;

namespace CadastroConsultorio { public class Paciente { private string _nome; private byte _idade; private decimal _peso; private decimal _altura; public Paciente(string nome, byte idade, decimal peso, decimal altura) { Nome = nome; Idade = idade; Peso = peso; Altura = altura; }

public string Nome
{
    get { return _nome; }
    set { _nome = value; }
}

public byte Idade
{
    get { return _idade; }
    set { _idade = value; }
}

public decimal Peso
{
    get { return _peso; }
    set { _peso = value; }
}

public decimal Altura
{
    get { return _altura; }
    set { _altura = value; }
}

}

class Program { static void Main(string[] args) { Paciente paciente_01 = new Paciente("Joao Sarchis", 30, 83.0m, 1.70m); Console.WriteLine("Nome: {0}\nIdade: {1}\nAltura: {2}\nPeso(kg): {3}", paciente_01.Nome, paciente_01.Idade, paciente_01.Altura, paciente_01.Peso); } } }`

solução!
    public Paciente(string nome, byte idade, decimal peso, decimal altura)
    {
        Nome = nome;
        Idade = idade;
        Peso = peso;
        Altura = altura;
    }

    public string Nome
    {
        get { return _nome; }
        set { _nome = value; }
    }

    public byte Idade
    {
        get { return _idade; }
        set { _idade = value; }
    }

    public decimal Peso
    {
        get { return _peso; }
        set { _peso = value; }
    }

    public decimal Altura
    {
        get { return _altura; }
        set { _altura = value; }
    }
}

class Program
{
    static void Main(string[] args)
    {
        Paciente paciente_01 = new Paciente("Joao Sarchis", 30, 83.0m, 1.70m);
        Console.WriteLine("Nome: {0}\nIdade: {1}\nAltura: {2}\nPeso(kg): {3}", paciente_01.Nome, paciente_01.Idade, paciente_01.Altura, paciente_01.Peso);
    }
}