所以我不知道这是好是坏的代码设计,所以我想我最好问一下。
我经常创建用于处理涉及类的数据的方法,并且经常对方法进行大量检查,以确保事先没有空引用或其他错误。
一个非常基本的例子:
// fields and properties
private Entity _someEntity;
public Entity SomeEntity => _someEntity;
public void AssignEntity(Entity entity){
_someEntity = entity;
}
public void SetName(string name)
{
if (_someEntity == null) return; //check to avoid null ref
_someEntity.Name = name;
label.SetText(_someEntity.Name);
}
因此,您可以看到im每次都检查null。但是该方法应该没有此检查吗?
例如,外部代码应事先清除数据,这样方法就不需要进行如下验证:
if(entity != null) // this makes the null checks redundant in the methods
{
Manager.AssignEntity(entity);
Manager.SetName("Test");
}
总之,方法应该是“数据验证”,然后对数据进行处理,还是应该在调用方法之前对其进行保证,如果在调用方法之前未能验证,则应该抛出错误(或捕获错误)。错误)?