es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Qué pasos son necesarios para hacer este resumen?

Estoy aprendiendo .NET Core Web API. Tengo una clase de modelo como esta:

namespace Game.Models
{
    public class Game
    {
        public int GameId { get; set; }
        public string Question { get; set; }
        public string[] Options { get; set; }
        public string Answer { get; set; }
    }
}

El asunto es que tengo un juego que tiene varias respuestas, así que necesitaré:

public string[] Answer { get; set; }

¿Cómo puedo crear este comportamiento en mi clase de juego? ^

He pensado en esto:

public class Answers
{
    private string ans;
    private string[] anss;

    public Answers(string answer)
    {
        ans = answer;
    }

    public Answers(string[] answers)
    {
        anss = answers;
    }
}

He pensado en usar una interfaz, pero no creo que sea el caso de uso aquí. Estoy tratando de atar todo esto en un nudo para entenderlo. Agradecería la ayuda de cualquier persona con esto.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para agregar múltiples respuestas a la clase Game, simplemente puedes modificar la propiedad Answer para que sea un array de cadenas de texto de la siguiente manera:

    namespace Game.Models
    {
        public class Game
        {
            public int GameId { get; set; }
            public string Question { get; set; }
            public string [] Options { get; set; }
            public string[] Answer { get; set; }
        }
    }
    

    Esto te permitirá almacenar múltiples respuestas para un solo juego. No necesitas crear una clase separada de Answers para esto.

    Si deseas imponer un número mínimo y máximo de respuestas (por ejemplo, al menos 2 y no más de 5), puedes utilizar propiedades con sets privados para imponer estas restricciones:

    namespace Game.Models
    {
        public class Game
        {
            public int GameId { get; set; }
            public string Question { get; set; }
            public string [] Options { get; set; }
    
            private string[] _answers;
    
            public string[] Answer
            {
                get => _answers;
                set
                {
                    if (value.Length < 2)
                    {
                        throw new ArgumentException("Se requieren al menos 2 respuestas");
                    }
                    if (value.Length > 5)
                    {
                        throw new ArgumentException("No se permiten más de 5 respuestas");
                    }
    
                    _answers = value;
                }
            }
        }
    }
    

    De esta manera, si intentas establecer la propiedad Answer como un array de menos de 2 o más de 5 cadenas de texto, se lanzará una excepción ArgumentException.

Comments are closed.