如何在私有方法中访问公共方法的参数值

时间:2013-08-02 17:45:43

标签: c# winforms

我是否可以在此EditQuestionMaster(int qid_value)按钮内点击此qid_value,如果是,我可以如何执行此操作以便private void button1_Click(object sender, EventArgs e)正确

UpdateQuestion

提前感谢任何帮助

2 个答案:

答案 0 :(得分:2)

public partial class EditQuestionMaster : Form
    {
        DbHandling db = new DbHandling();
        int qid; // here is the class variable
        public EditQuestionMaster(int qid_value)
        {
            InitializeComponent();

            this.qid = qid_value; // set the value here

            string subNtop = db.GetEditSubNTopic(qid_value);
            string[] subNtopData = subNtop.Split('~');
            cmbSubject.Text = subNtopData[2];                
        }
private void button1_Click(object sender, EventArgs e)
        {       

            qid // use it here

答案 1 :(得分:0)

扩大偶然的回答:

您可以定义业务对象来处理更新,如下所示:

public class QuestionEditor
{
    DbHandling db = new DbHandling();
    int questionId;
    public QuestionEditor(int questionId)
    {
        this.questionId = questionId;
    }

    public void SetAnswer(string answerOption)
    {
        db.UpdateQuestion(qid, answerOption);
    }
}

创建表单后,让它创建业务对象的新实例:

public partial class EditQuestionMaster : Form
{
    QuestionEditor editor;
    public EditQuestionMaster(int qid_value)
    {
        InitializeComponent();

        editor = new QuestionEditor(qid_value);            
    }
}

现在,表单中的其他方法可以调用编辑器来执行操作。

private void button1_Click(object sender, EventArgs e)
{
    string answerOption;

    // switch populates answerOption

    editor.SetAnswer(answerOption);
}

通过移动逻辑来执行远离用户交互的表单的更新称为抽象。这种抽象允许UI代码在某种程度上独立于问题数据的访问/存储方式而发展。这是n层架构的基础。

相关问题