有没有办法让实现接口Ae的每个类都有一个实现Ba作为属性的具体类的列表


  • 我有一个接口(Ae(,它有一个来自另一接口(Ba(的对象列表(list(
  • 我有一个实现接口Ae的类
  • 我有几个实现Ba接口的类

有没有办法让每个实现接口Ae的类都有一个实现Ba作为属性的具体类的列表?

public interface IQuestion
{
IAnswerOption[] Answers { get; set; }
}
public interface IAnswerOption
{
int Id { get; }
bool IsCorrect { get; set; }
}
public class AnswerOptionText : IAnswerOption
{
public int Id { get; }
public bool isCorrect;
public string ansText;
}
public class AnswerOptionImage : IAnswerOption
{
public int Id { get; }
public bool isCorrect;
public string imgSlug;
}
public class AudioQuestion : IQuestion
{
public AnswerOptionImage[] Answers;
public string audioName;
}
public class TextQuestion : IQuestion
{
public AnswerOptionText[] Answers { get; set; }
public string questionText { get; set; }
}

当我尝试时,AudioQuestionTextQuestion不允许我分别使用AnswerOptionImage[]和AnswerOption Text[]

Visual Studio说我需要实现接口成员IQuestion.答案,但这不是我想要的。

如果有人能帮助我,我将不胜感激。谢谢

IQuestion接口中使用泛型似乎非常合适:

public interface IQuestion<T> where T: IAnswerOption
{
T[] Answers { get; set; }
}
public class AudioQuestion : IQuestion<AnswerOptionImage>
{
public AnswerOptionImage[] Answers{ get; set; }
public string audioName;
}
public class TextQuestion : IQuestion<AnswerOptionText>
{
public AnswerOptionText[] Answers { get; set; }
public string questionText { get; set; }
}

相关内容

  • 没有找到相关文章

最新更新