2013-06-01 84 views
0

我在網上找到了一些代碼。它在C#中,我試圖將它移植到vb.net。我需要一些幫助,從Log子例程中調用評估函數。在C#中,評估器在Log中被調用時似乎沒有期望任何參數。但是,VB不斷要求匹配參數。什麼是神奇的,我應該如何讓它在VB.NET中工作?謝謝。端口代碼到vb.net

private string evaluator(Match match) 
{ 
    Pri pri = new Pri(match.Groups[1].Value); 
    return pri.ToString()+" "; 
} 

private void Log(EndPoint endPoint, string strReceived) 
{ 
... 
string strMessage = string.Format("{0} : {1}", 
    endPoint, m_regex.Replace(strReceived, evaluator)); 
... 
} 

回答

1

C#的版本是使用過載(string, MatchEvaluator)Regex.Replace()的,以及使用該方法的名字到MatchEvaluator委託類型的隱式轉換。關於該過載,請參閱MSDN documentation

在MSDN頁面,這是怎麼稱呼它:

Dim result As String = rx.Replace(text, AddressOf RegExSample.CapText) 

所以一定要使用AddressOf關鍵字。