2 回答

TA贡献1111条经验 获得超0个赞
在SetDescription
并且SetName
您正在检查字段/成员变量而不是 if 语句中的参数。改为检查参数(this
在 if 条件下为否)。

TA贡献1834条经验 获得超8个赞
你有名字冲突。您实际上是在检查私有字段,而不是传递给您的方法的参数。
this.Name指的是你的类的私有字段,而不是参数。这就是正确的命名约定很重要的原因。将参数更改为小写以避免混淆,并确保检查该值null:
public void SetName(string name)
{
if (name == null)
throw new Exception("The name can't be blank");
else
this.Name = name;
}
您可能还需要考虑使用静态String函数IsNullOrWhiteSpace:
if (String.IsNullOrWhiteSpace(name))
throw new Exception("The name can't be blank");
私有字段也有一些约定,因此您可能也想更改该字段的名称。例如,命名私有字段的常用方法是:
private string _name;
你的 try/catch 块总是被触发,因为你总是检查私有字段是null. 一旦您更正了该字段的问题,将对参数进行检查,该字段将被正确设置并且不应执行 try/catch 块(当然,除非您传入一个null值)。
- 2 回答
- 0 关注
- 200 浏览
添加回答
举报