Al definir una nueva clase dentro de un proyecto, ¿cuál es la práctica correcta/mejor para hacerlo? En el pasado he creado clases, tales como:¿Cómo definir correctamente las propiedades de clase?
public class MyClass
{
public string FirstName {get; set;}
public string LastName {get; set;}
}
Normalmente me gustaría usar una clase de este tipo para la creación de colecciones dentro de un proyecto.
Sin embargo, ya que siguen para aprender y leer más sobre C# veo ejemplos donde las clases se definen como:
class MyClass //not set to public
{
private string _firstName; //first defined as fields
private string _lastName;
public string FirstName // then defined as properties
{
get { return _firstName; }
set { _firstName = value; }
}
public string LastName
{
get { return _lastName; }
set { _lastName = value; }
}
}
es el primer enfoque incorrecto en la definición o se trata de una versión abreviada aceptada dentro de C#? Como práctica recomendada, ¿siempre debe definir primero la clase con campos privados y luego definirlos como propiedades usando get/set a un valor?
Lo pido porque soy autodidacta en C# y estoy tratando de mejorar y entender mejor el enfoque correcto del desarrollo y algunas muestras y tutoriales simplemente exponen los enfoques sin una explicación sólida de por qué se prefiere un enfoque (o debería hacerse) sobre el otro.
Gracias de antemano
En el segundo ejemplo, no debe haber una llave de cierre después del campo _lastname. Eso debería estar al final de la definición de la clase. Las propiedades todavía están definidas dentro del bloque de clase. (a menos que haya algo que no sepa sobre C#) –