我偶尔会碰到一些方法,开发人员选择返回一些对函数不重要的东西。我的意思是,当看代码时,它显然void
和一样好,并且经过一会儿思考,我问“为什么?” 这听起来很熟悉吗?
有时我会同意,通常最好返回一个诸如bool
or的值int
,而不是仅仅做一个void
。从总体上看,我不确定优缺点。
根据情况,返回int
可以使调用方知道受该方法影响的行或对象的数量(例如,将5条记录保存到MSSQL)。如果“ InsertSomething”之类的方法返回布尔值,那么我可以将设计为true
成功的方法返回,否则返回false
。呼叫者可以选择对该信息采取行动或不采取行动。
另一方面,
- 会导致方法调用的目的不明确吗?错误的编码经常迫使我仔细检查方法的内容。如果返回某些内容,它将告诉您该方法的类型必须对返回的结果进行某些处理。
- 另一个问题是,如果您不知道方法的实现,那么开发人员决定返回什么功能并不关键的东西?您当然可以发表评论。
- 当处理可以在方法的右括号中结束时,必须处理返回值。
- 引擎盖下会发生什么?调用的方法是否
false
由于抛出错误而得到?还是由于评估结果而返回false?
您对此有何经验?您将如何处理?
void
至少让开发人员知道该方法的返回值无关紧要;它执行一个动作,而不是计算一个值。