You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
4 Hrs
40 Min
45 Seg

Configurando clases

7/26
Resources

Contributions 7

Questions 1

Sort by:

Want to see more contributions, questions and answers from the community?

Si escribes “prop” y presionas dos veces tab se te genera una propiedad automáticamente (ahorra tiempo de código)

En el archivo .csproj es posible que tengan la siguiente configuración:

<Nullable>enable</Nullable>

En algunas propiedades de la clase Book.cs aparecerá este warning:

CS8618 - Non-nullable variable must contain a non-null value when exiting constructor. Consider declaring it as nullable.

Pueden hacer lo siguiente:

  1. declarar la propiedad como nullable
public class Book
{
    public string? Title { get; set; }
    public int PageCount { get; set; }
    public string? Status { get; set; }
    public DateTime PublishedDate { get; set; }
    public string? ThumbnailUrl { get; set; }
    public string? ShortDescription { get; set; }
    public string[]? Authors { get; set; }
    public string[]? Categories { get; set; }
}
  1. asignarle un valor por default
public class Book
{
    public string Title { get; set; } = "";
    public int PageCount { get; set; }
    public string Status { get; set; } = "";
    public DateTime PublishedDate { get; set; }
    public string ThumbnailUrl { get; set; } = "";
    public string ShortDescription { get; set; } = "";
    public string[] Authors { get; set; } = Array.Empty<string>();
    public string[] Categories { get; set; } = Array.Empty<string>();
}

Para agregar un constructor a la clase pueden colocar la palabra ctor y dan clic en la tecla tab.

Book.cs

public class Book
    {
        public string? Title { get; set; }
        public int PageCount { get; set; }
        public DateTime PublishedDate { get; set; }
        public string? ThumbnailUrl { get; set; }
        public string? ShortDescription { get; set; }
        public string? LongDescription { get; set; }
        public string? Status { get; set; }
        public string[]? Authors { get; set; }
        public string[]? Categories { get; set; }
    }
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
Clase 7/26 - **Configurando Clases para el Proyecto** **Objetivo:** * 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:** 1. **Clase** `Book`**:** * 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 Clase** `Book`**:** ```c# 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 } } ``` 1. **Clase** `LinqQueries`**:** * 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 Clase** `LinqQueries`**:** ```c# 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.
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**)