2016-06-21 49 views
2

我正在研究一個較老的VB.Net項目,並且我發現了數百個位置,其中字符串文字或字符串變量被CStr'd。這也是與Ints一起完成的。有沒有這個我不知道的價值?這是一個耗費處理能力的實際操作嗎?這是什麼? CStr(「DELETE」)

+1

奇怪。結果是否以任何方式使用? –

+0

對此看不太多,但如果你看看微軟的信息,它似乎可以提高性能。 https://msdn.microsoft.com/en-us/library/s2dy91zy.aspx - https://msdn.microsoft.com/en-us/library/ch47ss2a.aspx – coder32

+0

ToString()是一個實際的方法調用,如果在一個字符串上執行,它可能實際上更糟糕。編輯:確認。 –

回答

1

CStr對一個字符串是完全多餘的,而且沒有害處。

我建了一個文件:

Sub Main() 
    Dim result = CStr("string") 

    Console.WriteLine(result) 
End Sub 

和編譯器足夠聰明來取代CStr的(「字符串」)與「字符串」如果你看看與ILSpy的拆卸組裝。

+1

它會做同樣的事情,對編譯器來說,它們都只是字符串。 –

+0

我甚至沒有意識到我們正在談論推論,它與這個問題無關。 –

+0

@ Zaggler - ''12「'*是一個字符串,那麼爲什麼你希望它在某個時間點是一個整數?使用'Option Infer'輸入推理,我認爲當你說讓編譯器進行轉換時不會引起任何有害的副作用,它只是將'As SomeType'去掉。但是CStr(「abc」)是完全沒有意義的 –