了解委托错误有问题。错误说预期表达,我该如何解决?谢谢你的帮助。
这是违规行(#259)......
mylist.ForEach(Delegate Function(P As linkItem) As System.Char[] )
以下是整个代码。
<script language="VB" runat="server">
Function sectionTitle(ByRef f As String)
'Open a file for reading
'Dim FILENAME As String = Server.MapPath("index.asp")
Dim FILENAME As String = f
'Get a StreamReader class that can be used to read the file
Dim objStreamReader As StreamReader
objStreamReader = File.OpenText(FILENAME)
'Now, read the entire file into a string
Dim contents As String = objStreamReader.ReadToEnd()
'search string for <title>some words</title>
Dim resultText As Match = Regex.Match(contents, "(<title>(?<t>.*?)</title>)")
'put result into new string
Dim HtmlTitle As String = resultText.Groups("t").Value
Return HtmlTitle
' If HtmlTitle <> "" Then
'Response.Write(HtmlTitle)
' Else
'Response.Write("<ul><li>b: " & contents & "</a></li></ul>")
' End If
End Function
Public Class linkItem
Public myName As String
Public myValue As String
Public Sub New(ByVal myName As String, ByVal myValue As String)
Me.myName = myName
Me.myValue = myValue
End Sub 'New
End Class 'linkItem
Sub DirSearch(ByVal sDir As String)
Dim d As String
Dim f As String
Dim mylist As New List(Of linkItem)
Try
For Each d In Directory.GetDirectories(sDir)
'Response.Write("test c")
For Each f In Directory.GetFiles("" & d & "", "index.asp")
'Response.Write("test a")
Dim sTitle As String = sectionTitle(f)
'remove wilbur wright college - from sTitle string
sTitle = Regex.Replace(sTitle, "My College - ", "")
'print section title - must come before search n replace string
f = Regex.Replace(f, "C:\\inetpub\\wwwroot\\pathtosite\\", "")
'add to list
mylist.Add(New linkItem(f, sTitle))
'print links as list
'Response.Write("<ul><li><a href='" & f & "'>" & sTitle & "</a></li></ul>")
mylist.ForEach(Delegate Function(P As linkItem) As System.Char[] )
If (True) Then
Response.Write("<ul><li><a href='" & P.myValue & "'>" & P.myName & "</a></li></ul>")
End If
Next
DirSearch(d)
Next
Catch excpt As System.Exception
'Response.Write("test b")
Response.Write(excpt.Message)
End Try
End Sub
</script>
<%
'Dim sDir As New DirectoryInfo(Server.MapPath(""))
Call DirSearch((Server.MapPath("")))
%>
答案 0 :(得分:3)
这取决于你想要做什么。你缺少功能体。但您可能需要将该行更改为以下内容:
mylist.ForEach(AddressOf ProcessLink)
然后你需要创建一个sub,如下所示:
Sub ProcessLink(li As linkItem)
' Do stuff here
End Sub
答案 1 :(得分:0)
我认为功能体缺失了。
答案 2 :(得分:0)
委托缺少要执行的功能代码(如@Yogendra所示),并且VB.Net不理解char []。也许你的意思是char()。