C# 在类属性中未设置任何值时创建默认值
我有一个具有多个属性的类。我想要的是,如果没有传递给某个属性的值,则为该属性设置一个值。例如,如果txtFather.Text为空,则类的_theMather属性的默认值应为“N/a”。以下是我目前掌握的代码: 班级学生模式C# 在类属性中未设置任何值时创建默认值,c#,C#,我有一个具有多个属性的类。我想要的是,如果没有传递给某个属性的值,则为该属性设置一个值。例如,如果txtFather.Text为空,则类的_theMather属性的默认值应为“N/a”。以下是我目前掌握的代码: 班级学生模式 private string _theFather = "N/A"; public string SetFather { get { return _theFather; } set { _theFather = value
private string _theFather = "N/A";
public string SetFather
{
get { return _theFather; }
set { _theFather = value; }
}
public void InsertStudent(StudentModel student)
{
MessageBox.Show(_theFather);
}
班级增加学生人数
private void button1_Click(object sender, EventArgs e)
{
var sm = new StudentModel()
{
SetFather = txtFathersName.Text
};
sm.InsertStudent(sm);
}
如果我在txtFather.Text中放置一个值,我会在StudentModel类中获取its值,但是如果我将txtFather.Text留空,我不会获取“N/a”值。我只是得到一个空白或根本没有值。
谢谢您的帮助。您应该仅在键入字符串时设置属性,如下所示:
private void button1_Click(object sender, EventArgs e)
{
var sm = new StudentModel();
if (!string.IsNullOrEmpty(txtFathersName.Text))
sm.SetFather = txtFathersName.Text;
sm.InsertStudent(sm);
}
仅当键入字符串时,才应设置属性,如下所示:
private void button1_Click(object sender, EventArgs e)
{
var sm = new StudentModel();
if (!string.IsNullOrEmpty(txtFathersName.Text))
sm.SetFather = txtFathersName.Text;
sm.InsertStudent(sm);
}
我将通过检查传递给setter的值来封装StudentModel类中的逻辑,并且仅在字符串不为null或空白时更新支持字段
public string SetFather
{
get { return _theFather; }
set {
if(!string.IsNullOrWhiteSpace(value))
{
_theFather = value;
}
}
}
这样的话,你只有一个地方的逻辑。如果您修改类的消费代码,那么您必须记住在任何地方都要更改它。我将通过检查传递给setter的值来封装StudentModel类中的逻辑,并且仅在字符串不为null或空白时更新支持字段
public string SetFather
{
get { return _theFather; }
set {
if(!string.IsNullOrWhiteSpace(value))
{
_theFather = value;
}
}
}
这样的话,你只有一个地方的逻辑。如果您修改类的使用代码,那么您必须记住在任何地方都要更改它。FYI,属性的标准命名约定是它们不包含动词。因此理想情况下,您的
SetFather
属性将被称为Father
。否则,说var-dad=StudentModel.SetFather
看起来有点奇怪。(在方法名中使用动词,比如InsertStudent
),我会记住这一点。ThanksFYI,属性的标准命名约定是它们不包含动词。因此理想情况下,您的SetFather
属性将被称为Father
。否则,说var-dad=StudentModel.SetFather
看起来有点奇怪。(在方法名中使用动词,比如InsertStudent
),我会记住这一点。谢谢你!谢谢,很好用!非常感谢。