2011-08-10 116 views
3

哪一個你更喜歡從給定的字符串中提取一個子字符串?爲什麼?VB.NET中的Left和Right與Substring()

我在想,由於LeftRight是VB函數,而不是.NET函數,它們可能會在兼容性方面導致未來的問題。

請澄清我的想法。

+0

您使用的是.NET還是舊版本的VB? –

+0

我正在使用.NET,它需要Microsoft.VisualBasic命名空間。 – Tarik

+0

我確實相信你可以使用負長度的Substring,模擬相同的行爲。但是我會使用標準的.NET函數,除非我真的需要別的東西。 –

回答

8

使用哪一個最有意義,即使得該段代碼更容易閱讀。

我不知道爲什麼你會認爲他們將來會導致問題,他們是功能,他們是作爲VB.Net語言集的一部分提供的,有沒有世俗的原因爲什麼他們會被刪除,即使他們是,他們將是微不足道的重新實施

使用'時間,因爲你不會失去'時間

1

你一個人工作嗎?

如果否,決定很簡單。

  • 如果你的團隊成員有C#背景,使用Substring
  • 如果您的開發者有一些VB6背景,請使用LeftRight
  • 如果你不確定,問問他們。
+0

如果任何來自任何3GL的開發者都難以弄清左右函數的作用,我會感到非常驚訝。這不像名稱模糊:) –

+0

這可能是真的。就個人而言,我更喜歡.NET Framework中的'Left'和'Right',但也許這是因爲我來自VB6。 –

+2

我一直在專業編程近20年,在各種語言和來自不同背景的人,相信我,'左'和'右'功能不會造成太多混亂:) –

2

當給定一個特點,那就是從Microsoft.VisualBasic VS是在覈心框架assembiles提供類似功能之間進行選擇,我傾向於使用在大多數情況下後者。

我這樣做因爲各種原因:

  • 它往往被更多的開發人員可以理解的。 (例如看着我的VB.NET代碼的C#人)。
  • 對於核心框架版本,您比在VB版本中更容易找到聯機幫助(留言板,stackoverflow等)。
  • 使用它們會給您的代碼帶來「遺產」的感覺。這就像利用Call聲明。
  • 使其他人更容易將VB.Net代碼複製並粘貼到他們的C#(或其他.NET語言)項目中,並使其成爲少一個語言轉換點/掛斷。 (不太可能這是一個真正的關注/理由,但我知道我有很多次「複製並粘貼」示例C#代碼到我的VB.Net項目中,並且任何不會導致翻譯過程中的障礙物(例如的yield使用),使我的生活更輕鬆。)
  • 雖然完全不可想象他們要離開(因爲大多數這些關鍵字/語句是一個BASIC語言結構),他們覺得更有可能成爲標比任何過時的核心框架對口。尤其是隨着VB6越來越多地成爲一個遙遠的內存,並且VB.NET語言在推動核心.NET框架的同時,也將自身發揮其生命力。

一個值得注意的例外是,我傾向於使用My namespace代理提供; My.FileSystem.ReadAllText(...)只是性感。 :P

+0

對不起,但你有幾個非常脆弱的論點。 1)爲什麼代碼需要移植到_another_ .net語言?這不就是CLR的全部內容嗎,語言並不重要?即使這樣做,也沒有任何東西阻止C#程序集引用Microsoft.VisualBasic命名空間並使用左側和右側函數。 2)最後一點,這是一種「感覺」 - 沒有根據,這些函數是BASIC語言的一部分,它們不會去任何地方,它們很可能會從C#中刪除'switch'語句。 –

+0

ckittel:我在釐米的編輯。我所有的擔憂都很好地偏離了:) –

+0

@Binary謝謝你,你的評論非常有建設性,我在回答中考慮了他們。謝謝! – ckittel

相關問題