将单选按钮和复选框保存在同一结构中

本文关键字:结构 存在 保存 单选按钮 复选框 | 更新日期: 2023-09-27 17:59:08

我有一项任务:编写一些测试,但有些问题有单选按钮作为答案,有些问题有复选框作为答案。我想到了这个(如何用单选按钮保存答案):Dictionary<RadioButton, bool> answers = new Dictionary<RadioButton, bool>();。我把每一个问题都保存在这样的结构中:

class Question
    {
        public Question(Label lab,  Dictionary<RadioButton, bool> ans)
        {
            text = lab;
            answers = ans;
            isAnswered = false;
        }
        public Label text { get; set; }
        public Dictionary<RadioButton, bool> answers { get; set; }// = new Dictionary<RadioButton, bool>();
        public bool isAnswered;
    }

但这只保存单选按钮。如何做到这一点,但当某些对象必须保存CheckedListBox,而不是RadioButton的时

将单选按钮和复选框保存在同一结构中

选项之一是在字典中使用Control类,它是CheckedListBox和RadioButton的基类。尽管我怀疑您是否需要引用真正的控件,但保存KeyValuePair是有意义的,其中key是单选按钮或复选框项的名称,value是状态。最后,还有一个选项是只维护已检查/已选择的项目,而所有其他项目都被认为是未检查的