2012-01-23 88 views
-5

我從一個網站得到了這段代碼。它將unicode轉換爲印地文字體。它使用匹配,但我不遵循如何在其他地方定義它。它在'>'附近產生錯誤。Match Evaluator not working

string input = "0928;0940;0932;092E;"; 
Regex rx = new Regex(@"([0-9A-Fa-f]{4});"); 
string output = rx.Replace(input, match => ((char)Int32.Parse(match.Groups[1].Value, NumberStyles.HexNumber)).ToString()); 
textBox1.Text = output; 

更新

錯誤: '匹配' 不存在當前上下文存在。

+5

,什麼是錯誤? – Strillo

+0

錯誤是:匹配在當前上下文中不存在。 – RKh

回答

1

如果您真正使用C#2.0(基於您的標記),那麼在C#3.0之前不支持lambda表達式。因此,您不能使用match => ...

試試這個,而不是你的string output = ...行:

string output = rx.Replace(input, delegate(Match match) { 
     return ((char)Int32.Parse(match.Groups[1].Value, NumberStyles.HexNumber)).ToString(); 
    }); 
+0

或創建一個實際的命名方法,這將有助於可讀性... –

+0

@ziesemer謝謝。它在.NET 4.0中工作。 – RKh