2010-11-05 5 views
1

Je viens d'écrire ceci:Méthode large appel VB.NET

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

Sa loin de large! Comment puis-je raccourcir cet appel de méthode? Le problème est que ce n'est pas ma méthode, donc je ne peux pas l'éditer.

Répondre

4

Cela dépend de votre préoccupation:

  • Trop de paramètres? Vous ne pouvez pas vraiment changer cela sans changer la méthode, bien que vous puissiez introduire une méthode de proxy contenant moins de paramètres, où chaque paramètre peut correspondre à plusieurs des paramètres d'origine. Il semble que vous souhaitiez en faire une méthode sur le type de emp, mais il est difficile de le savoir sans plus d'informations.
  • Juste trop large à l'écran? ligne Utilisez continuations:

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

    (IIRC le "_" est pas réellement nécessaire dans VB10.)

  • Trop de personnages? Introduire des variables locales, potentiellement, ce qui réduit l'appel éventuel à quelque chose comme:

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

    (. Bien que votre le code général sera plus grand, bien sûr)

+0

Certainement. Ressemble à une méthode CRUD typique. La conversion vers un ORM serait utile, mais si vous ne pouvez pas changer le code, ce n'est pas vraiment une option. Je ne peux pas attendre pour obtenir sur vb10, BTW, juste la continuation de la ligne automatique est assez pour moi! – DarinH

+0

Vous pouvez également ajouter le "avec" statment. –

1

Puisque vous ne pouvez pas changer la signature de la méthode, vous devez vraiment y passer tous les champs d'emp. Je aurais tendance à écrire ma propre fonction (pardonnez mon VB terriblement rouillé, je suis sûr qu'il ya quelque chose de mal avec cela):

updateLdb(Employee e) 

qui appelle simplement la fonction de LDB et n'a rien de plus. Utiliser une seule lettre pour un nom de variable est généralement une mauvaise idée, mais dans ce cas, il enregistre votre ligne 16 caractères, et dans une fonction d'une ligne, "e" n'est pas particulièrement informatif que "emp". Comme Jon dit si vous déplacez cette fonction dans la classe des employés, vous pouvez vous débarrasser de 16 autres caractères - et il semble vraiment y appartenir. Je n'utiliserais pas "e" comme variable ou nom de paramètre dans toute fonction qui est plus longue qu'une ou deux lignes, mais dans ce petit périmètre, je pense que vous pouvez vous en sortir sans sacrifier de manière significative la lisibilité.