我這行的,我想換到VB.NET C#代碼:從C#轉換功能<T>到VB.NET
public static string functionx<RT>(RT req){}
是下列正確的翻譯?
Public Function functionx(Of RT)(req As RT) As String
我這行的,我想換到VB.NET C#代碼:從C#轉換功能<T>到VB.NET
public static string functionx<RT>(RT req){}
是下列正確的翻譯?
Public Function functionx(Of RT)(req As RT) As String
關閉,但不完全。你需要這個:
Public Shared Function functionx(Of RT)(ByVal req As RT) As String
fwiw,[vbscript和公司傳遞參數默認ByRef](http://msdn.microsoft.com/en-us/library/ee478101%28v=vs.84%29.aspx),但[VB.Net通過ByVal默認情況下](http://msdn.microsoft.com/en-us/library/ddck1z30.aspx)。然而,甚至在.Net中的ByVal也只是傳遞參考值。 @ Random832 –
要聲明一個通用的方法,你需要:
Public Shared Function functionx(Of RT)(ByVal req As RT) As String
我不知道爲什麼,但你回答一個問題你自己的問題...這是關於在VB.NET中相當於typeof
:
在VB.NET中TypeOf
和C#中的typeof
不完全一樣。見MSDN描述:
的
TypeOf
操作員確定 objectexpression的運行時類型是否與類型名兼容。兼容性 取決於typename的類型類別。下表顯示 如何確定兼容性。
它的語法是TypeOf objectexpression Is typename
,這就是爲什麼錯誤表示Is
預計。
你應該使用GetType
:
Dim serialzer = New XmlSerializer(GetType(T)).Serialize(writer, req, ns)
@ Random832'ByVal'是默認的,不是嗎? – MarcinJuraszek
我認爲編輯器在默認情況下添加了它,但是如果您編譯的文件沒有在Visual Studio中編寫,那麼ByRef是默認的 – Random832
hmm,這不是MSDN所說的:'Visual Basic中的默認值是通過值傳遞參數。 http://msdn.microsoft.com/en-us/library/ddck1z30.aspx – MarcinJuraszek
我需要知道在公共靜態字符串functionx
爲什麼你不試一試呢? – t3chb0t