Wide方法调用VB.NET

Wide方法调用VB.NET,vb.net,refactoring,Vb.net,Refactoring,我刚刚写了这篇文章: ldb.Update(emp.Code,emp.number, "text", String.Empty, "EMP", emp.scheme, emp.status, emp.tod, emp.timestamp, emp.Code, emp.oldfrmd) 它太宽了!如何缩短此方法调用?问题是这不是我的方法,因此我无法编辑它。这取决于您的关注点: 参数太多?虽然可以引入一个包含较少参数的代理方法,其中每个参数都可以映射到多个原始参数,但如果不更改方法,则无法真正更

我刚刚写了这篇文章:

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

它太宽了!如何缩短此方法调用?问题是这不是我的方法,因此我无法编辑它。

这取决于您的关注点:

  • 参数太多?虽然可以引入一个包含较少参数的代理方法,其中每个参数都可以映射到多个原始参数,但如果不更改方法,则无法真正更改该方法。看起来您可能想在任何类型的
    emp
    上使用此方法,但是如果没有更多信息,就很难知道
  • 只是屏幕太宽了?使用行连续体:

    ldb.Update(emp.Code, emp.number, "text", String.Empty, "EMP", _
               emp.scheme, emp.status, emp.tod, emp.timestamp, _
               emp.Code, emp.oldfrmd)
    
    (在VB10中,实际上不需要“rc”。)

  • 角色太多了?引入一些局部变量,可能会缩短最终调用,例如:

    ldb.Update(code, number, "text", "", "EMP", scheme, status, _
               tod, timestamp, code, oldfrmd)
    
    (当然,尽管您的总体代码会更大。)


这取决于您的关注点:

  • 参数太多?虽然可以引入一个包含较少参数的代理方法,其中每个参数都可以映射到多个原始参数,但如果不更改方法,则无法真正更改该方法。看起来您可能想在任何类型的
    emp
    上使用此方法,但是如果没有更多信息,就很难知道
  • 只是屏幕太宽了?使用行连续体:

    ldb.Update(emp.Code, emp.number, "text", String.Empty, "EMP", _
               emp.scheme, emp.status, emp.tod, emp.timestamp, _
               emp.Code, emp.oldfrmd)
    
    (在VB10中,实际上不需要“rc”。)

  • 角色太多了?引入一些局部变量,可能会缩短最终调用,例如:

    ldb.Update(code, number, "text", "", "EMP", scheme, status, _
               tod, timestamp, code, oldfrmd)
    
    (当然,尽管您的总体代码会更大。)


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

它只是调用了ldb的函数,没有做更多的事情。使用单个字母作为变量名通常是一个坏主意,但在本例中,它可以节省第16行字符,并且在单行函数中,“e”的信息量并不比“emp”少。正如Jon所说,如果您将此函数移动到Employee类中,您可以去掉另外16个字符,而且它看起来确实属于那里


我不会在任何长度超过一两行的函数中使用“e”作为变量或参数名,但在这么小的范围内,我认为您可以在不显著牺牲可读性的情况下使用它。

因为您无法更改方法签名,所以您必须将所有emp字段都传递给它。我倾向于编写自己的函数(请原谅,我的VB太生疏了;我肯定这有点问题):

它只是调用了ldb的函数,没有做更多的事情。使用单个字母作为变量名通常是一个坏主意,但在本例中,它可以节省第16行字符,并且在单行函数中,“e”的信息量并不比“emp”少。正如Jon所说,如果您将此函数移动到Employee类中,您可以去掉另外16个字符,而且它看起来确实属于那里


我不会在任何长度超过一两行的函数中使用“e”作为变量或参数名,但在这么小的范围内,我认为您可以在不显著牺牲可读性的情况下使用它。

当然。看起来像是典型的积垢法。转换为ORM将有助于提高性能,但如果您无法更改代码,则这不是一个很大的选择。迫不及待地想上vb10,顺便说一句,仅仅自动换行就足够了!您还可以添加“with”语句。看起来像是典型的积垢法。转换为ORM将有助于提高性能,但如果您无法更改代码,则这不是一个很大的选择。迫不及待地想上vb10,顺便说一句,仅仅自动换行就足够了!您还可以添加“with”语句。