广泛的方法调用VB.NET [关闭]

问题描述 投票:0回答:2

我刚刚写了这个:

ldb.Update(emp.Code,emp.number, "text", String.Empty, "EMP", emp.scheme, emp.status, emp.tod, emp.timestamp, emp.Code, emp.oldfrmd)

它远广!如何缩短此方法调用?问题是这不是我的方法,所以我无法编辑它。

vb.net refactoring
2个回答
4
投票

这取决于你的关注点:

  • 参数太多了?虽然你可以引入一个包含较少参数的代理方法,但是每个参数可以映射到几个原始参数,但是不能在不改变方法的情况下真正改变它。看起来你可能想要在任何类型的emp上做这个方法,但没有更多的信息很难知道。
  • 屏幕上太宽了?使用续行: ldb.Update(emp.Code, emp.number, "text", String.Empty, "EMP", _ emp.scheme, emp.status, emp.tod, emp.timestamp, _ emp.Code, emp.oldfrmd) (IIRC在VB10中实际上不需要“_”。)
  • 字符太多了?引入一些局部变量,可能会缩短对以下内容的最终调用: ldb.Update(code, number, "text", "", "EMP", scheme, status, _ tod, timestamp, code, oldfrmd) (当然,你的整体代码会更大。)

1
投票

由于您无法更改方法签名,因此您必须将emp的所有字段都传递给它。我倾向于编写自己的函数(原谅我非常生疏的VB;我确定这有什么问题):

updateLdb(Employee e)

它简单地称为ldb的功能,并没有做任何其他事情。使用单个字母作为变量名称通常是一个坏主意,但在这种情况下,它会保存您的行16个字符,而在单行函数中,“e”的信息量不比“emp”少。正如Jon所说,如果你将这个函数移动到Employee类中,你可以删除另外16个字符 - 它看起来确实属于那里。

我不会在任何长于一行或两行的函数中使用“e”作为变量或参数名称,但在那个小范围内,我认为你可以在不显着牺牲可读性的情况下逃脱它。

© www.soinside.com 2019 - 2024. All rights reserved.