c#
  • html-agility-pack
  • 2014-01-13 39 views 0 likes 
    0

    我已经写了一小段代码来将url拖到列表中。返回一个通用列表并将其传递给另一个方法

    public Parse(HtmlDocument doc) 
        { 
         List<string> top = new List<string>(); 
         try 
         { 
          HtmlNodeCollection node = doc.DocumentNode.SelectNodes("//*[@id='content']/ul/li/a"); 
          if (node != null) 
          { 
           foreach (var item in node) 
           { 
            Console.WriteLine(item.Attributes["href"].Value); 
            top.Add(item.Attributes["href"].Value); 
           } 
          } 
          Console.ReadLine(); 
         } 
         catch(Exception e) 
         { 
          Console.WriteLine(e); 
         } 
        } 
    
        public sub(HtmlDocument doc) 
        { 
    
        } 
    

    当我尝试返回列表中的“顶”它来了一个错误“自从‘ConsoleApplication1.go.Parse(HtmlAgilityPack.HtmlDocument)’返回void,返回关键字一定不能跟一个对象表达式“我想知道的问题是,如何返回列表顶部的已压缩的浓缩文件,并将它们传递给方法”sub“?感谢您提供任何建议。

    +0

    你的函数返回类型在哪里? public returnType FunctionName(HtmlDocument doc){} – kjhf

    回答

    1

    至于其他的答案已经说:你必须改变你的函数的返回类型太:

    public List<string> Parse(HtmlDocument doc) 
    

    然后将它传递给你首先必须扩展子的参数:

    public sub(HtmlDocument doc, List<string> top) 
    { 
    
    } 
    

    然后在你的代码中,你可以调用这样的函数:

    var top = Parse(htmlDocument); 
    sub(htmlDocument, top); 
    
    1

    更改函数声明:

    public List<string> Parse(HtmlDocument doc) 
    
    1

    你需要指定方法的返回类型。所以这样的:

    public Parse(HtmlDocument doc) 
    

    变为:

    public List<string> Parse(HtmlDocument doc) 
    
    相关问题