Establecer las clases base que representarán las entidades dentro del proyecto, específicamente centradas en la manipulación de datos de libros.
Desarrollo de Clases:
ClaseBook:
Representa la entidad libro con propiedades extraídas del archivo books.json.
Se utilizan propiedades envueltas por campos privados para un mejor control de acceso y modificación de los datos.
Código de la ClaseBook:
public class Book
{ private string? _title; private int _pageCount; private DateOnly _publishedDate; private string? _thumbnailUrl; private string? _shortDescription; private string? _status; private string[]? _authors; private string[]? _categories; public string? Title { get {return _title;} set { _title = value;}} public int PageCount { get {return _pageCount;} set { _pageCount = value;}} public DateOnly PublishedDate { get {return _publishedDate;} set { _publishedDate = value;}} public string? ThumbnailUrl { get {return _thumbnailUrl;} set { _thumbnailUrl = value;}} public string? ShortDescription { get {return _shortDescription;} set { _shortDescription = value;}} public string? Status { get {return _status;} set { _status = value;}} public string[]? Authors { get {return _authors;} set { _authors = value;}} public string[]? Categories { get {return _categories;} set { _categories = value;}} public Book(){// Constructor vacío para inicialización básica}}
ClaseLinqQueries:
Diseñada para contener las consultas LINQ que se desarrollarán en el curso.
Inicialmente, se configura con un constructor vacío para futuras extensiones.
Código de la ClaseLinqQueries:
public class LinqQueries
{ public LinqQueries(){// Constructor vacío preparado para futuras consultas LINQ}}```**Próximos Pasos:*** Implementar métodos específicos en `LinqQueries` para ejecutar consultas LINQ sobre la colección de libros.* Utilizar la clase `Book` para cargar datos desde el archivo `books.json` y realizar operaciones de consulta.
Sobre los nullable en mi experiencia es mejor no ignorar este warning, por lo cual si quieren que su proyecto marque un warning como error lo pueden hacer agregando este tag en su csproj dentro de Project/PropertyGroup:<WarningsAsErrors>CS8618</WarningsAsErrors>
CS8618 es el código del warning
Hola, tengo este error:
The namespace '<global namespace>' already contains a definition for 'LinqQueries' [linqPractice, linqPractice]csharp(CS0101)
Alguien tiene idea de a qué se debe?
He asignado los mismos nombres que Miguel, tanto a la clase como al namespace y constuctor.
Adjunto captura del error:
Envia la imagen sin el popup para poder ver el coding debajo
Hola, cuándo a una Propiedad llegan varios elementos, en lugar de un array[] que otro tipo de estructura de datos es posible utilizar?, o puede ser cualesquiera según la necesidad (dictionary, array, stack, hashtable, queue, Linkedlist)