我有一个具有多个属性的类。我想要的是如果没有传递给它的值,则设置为特定属性的值。例如,如果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”值。我只是得到一个空白或没有价值。 谢谢你的帮助。
答案 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);
}