开发者

Wide Method Call VB.NET [closed]

开发者 https://www.devze.com 2023-01-23 11:39 出处:网络
Closed. This question needs details or clarity. It is not currently accepting answers. Want to improve this question? Add details and clarify the problem by editing this post.
Closed. This question needs details or clarity. It is not currently accepting answers.

Want to improve this question? Add details and clarify the problem by editing this post.

Closed 4 years ago.

开发者_JS百科 Improve this question

I've just written this:

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

Its far to wide! How can I shorten this method call? The problem is this isn't my method, so I can't edit it.


It depends on what your concern is:

  • Too many parameters? Can't really change that without changing the method, although you could introduce a proxying method containing fewer parameters, where each parameter may map to several of the original ones. It looks like you might want to make this a method on whatever the type of emp is, but it's hard to know without more information.
  • Just too wide on the screen? Use line continuations:

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

    (IIRC the "_" isn't actually needed in VB10.)

  • Too many characters? Introduce some local variables, potentially, shortening the eventual call to something like:

    ldb.Update(code, number, "text", "", "EMP", scheme, status, _
               tod, timestamp, code, oldfrmd)
    

    (Although your overall code will be bigger, of course.)


Since you can't change the method signature, you must really be passing all those fields of emp into it. I would tend to write my own function (pardon my terribly rusty VB; I'm sure there's something wrong with this):

updateLdb(Employee e)

which simply called ldb's function and did nothing more. Using a single letter for a variable name is generally a bad idea, but in this case it saves your line 16 characters, and in a one-line function, "e" isn't particularly less informative than "emp". As Jon says if you move this function into the Employee class, you can get rid of another 16 characters - and it does appear to really belong there.

I would not use "e" as a variable or parameter name in any function that is longer than one or two lines, but in that small a scope, I think you can get away with it without significantly sacrificing readability.

0

精彩评论

暂无评论...
验证码 换一张
取 消