gpt4 book ai didi

c# - 如何设计问卷框架/对象模型?

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:25 25 4
gpt4 key购买 nike

我正在为问卷创建一个框架。

问卷有几个问题。我的情况是寻找一个名为 Question 的类,它支持您想要的任何答案。

我的意思是,有些问题只需要一个答案,其他两个,其他问题需要字符串、整数、 double 或开发人员构建的任何新结构(假设开发人员正在创建一个数学问题,其中使用 Fraction 结构作为答案,因为示例)。

换句话说,我需要支持任何数据类型或数量的答案。

所以我正在考虑创建一个名为 Question 的抽象类,其中将包含响应的 Dictionary

public abstract class Question
{
protected Question(string questionText)
{
this.QuestionText = questionText;
this.Responses = new Dictionary<string, object>();
}

public string QuestionText
{
get;
set;
}

public IDictionary<string, object> Responses { get; protected set; }
}

例如,如果我创建一个新的Question,这将是演示。

public sealed class Question1 : Question
{
public Question1(string questionText)
: base(questionText)
{
}

public int? Response1
{
get
{
int? value = null;

if (this.Responses.ContainsKey("Response1"))
value = this.Responses["Response1"] as int?;

return value;
}
set
{
this.Responses["Response1"] = value;
}
}
}

您如何看待这个想法?我的第一个疑问:我将答案包含在类里面而不是另一个独立的类里面是否正确。

最佳答案

谁来回答这些问题?让我们假设人。鉴于此,一个人可能会以某种方式登录或识别自己。这让我认为 Person 模型应该包含 Responses,并引用每个问题。

// pseudocode 
class Person
int PersonID
IList Responses

class Response
int ResponseID
int QuestionID
string ResponseValue

class Question
int QuestionID
string QuestionText
IList AllowedResponses
bool AllowsMultipleResponses

关于c# - 如何设计问卷框架/对象模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11212853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com