2010-11-05 45 views
1

我剛寫的:寬方法調用VB.NET

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

其遠寬!我如何縮短此方法調用?問題是這不是我的方法,所以我不能編輯它。

回答

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) 
    

    (雖然你整體代碼將更大,當然)

+0

當然。看起來像一個典型的CRUD方法。轉換爲ORM將有所幫助,但如果您無法更改代碼,那麼這不是一個很好的選擇。不能等待vb10,順便說一句,只是自動線的延續對我來說已經足夠了! – DarinH 2010-11-05 19:49:01

+0

您也可以添加「with」語句。 – 2010-11-05 20:49:31

1

既然你不能改變方法簽名,您必須真正將所有這些emp的字段傳遞給它。我往往會寫我自己的函數(原諒我非常生疏VB,我敢肯定有一些錯誤這一點):

updateLdb(Employee e) 

其簡稱爲六味地黃丸的功能,並沒有僅此而已。使用單個字母作爲變量名通常是個不錯的主意,但在這種情況下,它將保存第16行的字符,而在單行函數中,「e」與「emp」相比具有不足的信息量。正如喬恩所說,如果你將這個函數移動到Employee類中,你可以擺脫另外16個字符 - 它看起來確實屬於那裏。

我不會在任何長度超過一行或兩行的函數中使用「e」作爲變量或參數名稱,但是在那個小範圍內,我認爲您可以避免使用「e」而不會顯着影響可讀性。