如果没有为类属性设置值,请创建默认值

时间:2016-07-12 23:58:27

标签: c#

我有一个具有多个属性的类。我想要的是如果没有传递给它的值,则设置为特定属性的值。例如,如果txtFather.Text为空,则类的_theFather属性应具有默认值“N / A”。这是我到目前为止的代码:

类StudentModel

private string _theFather = "N/A";

    public string SetFather
    {
        get { return _theFather; }
        set { _theFather = value; }
    }

public void InsertStudent(StudentModel student)
    {
        MessageBox.Show(_theFather);
    }

类AddStudent

private void button1_Click(object sender, EventArgs e)
    {
        var sm = new StudentModel()
        {
            SetFather = txtFathersName.Text
        };
        sm.InsertStudent(sm);
    }

如果我在txtFather.Text中放置一个值,我在StudentModel类中得到它的值,但如果我将txtFather.Text留空,我就不会得到“N / A”值。我只是得到一个空白或没有价值。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

我会通过检查传递给setter的值来封装StudentModel类中的逻辑,并且只有在字符串不为null或空格时才更新后备字段。

 public string SetFather
    {
        get { return _theFather; }
        set { 
              if(!string.IsNullOrWhiteSpace(value)) 
              { 
                 _theFather = value; 
              }
            }
    }

这样您只需将逻辑放在一个地方。如果你修改你的班级'消耗代码,然后你必须记住在任何地方都改变它。

答案 1 :(得分:0)

只有在键入字符串时才应设置属性,如下所示:

private void button1_Click(object sender, EventArgs e)
{
    var sm = new StudentModel();
    if (!string.IsNullOrEmpty(txtFathersName.Text))
        sm.SetFather = txtFathersName.Text;

    sm.InsertStudent(sm);
}