假设以下方法:
public void ShareClassStuff(int shareClassId)
{
var shareClass = _shareClassService.GetShareClassById(shareClassId);
(if shareClass != null)
var shareClassStat = _shareClassService.GetShareClassStat(shareClass.Id);
//go on to do stuff with shareClass & shareClassStat
}
在这里,我通过将shareClassId传递给返回我需要的对象的服务来获得shareClass
。接下来,我必须将Id传递给另一个方法来获取一些不同的数据。
我的问题是,在第二次服务电话中,最好是使用shareClassId
变量,例如
GetShareClassStat(shareClassId)
或shareClass对象的Id
属性,例如
GetShareClassStat(shareClass.Id)
还是甚至重要?
答案 0 :(得分:0)
我认为这不重要。
答案 1 :(得分:0)
虽然人们可能会双向争论,但传递shareClassId
的好处非常小:
shareClass.Id
是一个属性,因此是方法调用(可能会也可能不会通过优化内联)。 shareClassId
是一个简单的整数。
因此传递参数有一个非常小的优势。
<强>更新强>
另一个原因是人们可能更喜欢使用这个参数:它是一致的。您使用了第一个“按ID查找”的参数,因此第二次再次使用该参数。
这些原因都不是非常引人注目,但既然你问过,我认为你对任何可以想象的推理感兴趣。
答案 2 :(得分:0)
无所谓。如果由于某种原因你的GetShareClassById()方法停止返回空值而是开始返回一个空类,那么以后才有意义。现在你有一个ID无效的类。并不是说它会发生,只是说它会引起问题。
如果你关心速度增加0.0001秒,那么传递变量。
答案 3 :(得分:0)
我认为从性能角度来看并不重要,但是,我会将shareClassId传递给第二个方法,而不是shareClass.Id。
原因是当您使用shareClass.Id时,您现在依赖于代码的定位。必须在_shareClassService.GetShareClassStat之前首先调用_shareClassService.GetShareClassById。此外,您还引入了对_shareClassService.GetShareClassById实现的依赖,以正确填充Id属性。