C sharp - Iniciando en POO

 
Vista:
sin imagen de perfil

Iniciando en POO

Publicado por Cristofer (2 intervenciones) el 02/03/2022 19:27:46

Hola chicos y chicas, estoy empezando con POO en C# hice un pequeño programa que calcula la distancia de 2 coordenadas (x,y), y les pediria algunos consejos de que es lo que podria mejorar o alguna idea para acortar el codigo.
Gracias de antemano :) .




using System;

namespace ConceptosPOO
{
class Program
{
public static void Main(string[] args)
{

int x, y;
Punto coordenada1;
Punto coordenada2;
Punto proceso=new Punto();
double resultado;

Console.WriteLine("Digite la primera coordenada");
x = int.Parse(Console.ReadLine());
y = int.Parse(Console.ReadLine());
coordenada1 = new Punto(x, y);

Console.WriteLine("Digite la segunda coordenada");
x = int.Parse(Console.ReadLine());
y = int.Parse(Console.ReadLine());
coordenada2 = new Punto(x, y);

resultado = proceso.getDistancia(coordenada1, coordenada2);

Console.WriteLine($"La distancia entre los dos puntso es: {resultado}"
);


}
}

class Punto
{

int x, y;
public Punto()
{
}
public Punto(int x,int y)
{
this.x = x;
this.y = y;
}

public double getDistancia(Punto xy1,Punto xy2)
{
int restaX = xy1.x - xy2.x;
int restaY = xy1.y - xy2.y;
double distancia = Math.Sqrt(Math.Pow(restaX,2) + Math.Pow(restaY,2));
return distancia;
}

}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 373
Plata
Ha aumentado su posición en 2 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Iniciando en POO

Publicado por Agustin (171 intervenciones) el 02/03/2022 21:30:18
A ver, si hablamos de acortar el código podemos lograr algo así:

I21QY8Z

- Lo primero que notamos acá es que No es necesario declarar un namespace, una clase y metodo main para crear aplicaciones de consola sencillas en C#.

- Segundo, en lugar de declarar las variables arriba y luego asignarlas, es muy recomendable hacer ambas cosas a la vez. Esto mejora la "localidad" de las variables, es decir que se declarar cerca del lugar donde se utilizan.

- Tercero, podemos reemplazar la clase punto por un record, que ya provee las facilidades de tener un constructor prederminado que recibe los parametros para inicializar las propiedades del mismo.

- Por último, y esto es algo más conceptual, la variable "proceso" en tu código no tiene ninguna razón de ser, ya que es del mismo tipo Punto, entonces en realidad no es un "proceso". El método GetDistancia() utiliza los valores de su propia instancia (this) y compara contra lo que recibe como parámetro. Dicho sea de paso le corregimos el nombre para adecuarnos a los naming conventions de C#
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Iniciando en POO

Publicado por Cristofer (2 intervenciones) el 03/03/2022 00:01:59
Muchas gracias por los consejos :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar