2010-12-03 22 views
0

我發現從我在ASP.NET MVC標記上removing whitespace的文章,但是,當我使用的代碼轉換器中,「功能」是不正確轉換如何將其轉換爲有效的VB.NET?

public class WhitespaceFilterAttribute : ActionFilterAttribute 
    { 

     public override void OnActionExecuting(ActionExecutingContext filterContext) 
     { 

      var request = filterContext.HttpContext.Request; 
      var response = filterContext.HttpContext.Response; 

      response.Filter = new WhiteSpaceFilter(response.Filter, s => 
        { 
         s = Regex.Replace(s, @"\s+", " "); 
         s = Regex.Replace(s, @"\s*\n\s*", "\n"); 
         s = Regex.Replace(s, @"\s*\>\s*\<\s*", "><"); 
         s = Regex.Replace(s, @"<!--(.*?)-->", ""); //Remove comments 

         // single-line doctype must be preserved 
         var firstEndBracketPosition = s.IndexOf(">"); 
         if (firstEndBracketPosition >= 0) 
         { 
          s = s.Remove(firstEndBracketPosition, 1); 
          s = s.Insert(firstEndBracketPosition, ">"); 
         } 
         return s; 
        }); 

      } 

    } 

這是得到由Telerik的代碼生成轉換器,

Public Overrides Sub OnActionExecuting(ByVal filterContext As ActionExecutingContext) 

     Dim request = filterContext.HttpContext.Request 
     Dim response = filterContext.HttpContext.Response 

     response.Filter = New WhiteSpaceFilter(response.Filter, Function(s) Do 
     s = Regex.Replace(s, "\s+", " ") 
     s = Regex.Replace(s, "\s*\n\s*", vbLf) 
     s = Regex.Replace(s, "\s*\>\s*\<\s*", "><") 
     s = Regex.Replace(s, "<!--(.*?)-->", "") 
     'Remove comments 
     ' single-line doctype must be preserved 
     Dim firstEndBracketPosition = s.IndexOf(">") 
     If firstEndBracketPosition >= 0 Then 
      s = s.Remove(firstEndBracketPosition, 1) 
      s = s.Insert(firstEndBracketPosition, ">") 
     End If 
     Return s 
     End Function) 

    End Sub 

但是Function(s) Do無效。我不知道如何將函數作爲參數傳遞給方法。

回答

3

你應該在VB.NET this可以使用委託,這和this應該幫助你。