c#全局类-从一个方法添加,从另一个方法读取

本文关键字:方法 添加 一个 读取 另一个 全局 | 更新日期: 2023-09-27 18:01:18

我如何使下面的doscraper方法添加到外部CompanyInfo变量,然后在button1_Click的循环访问该列表写入文本文件?

namespace Test1
{
public partial class Form1 : Form
{
    public class LocationNameAndLink
    {
        public string Link { get; set; }
        public string Name { get; set; }
    }
LocationNameAndLink CompanyInfo = new List<LocationNameAndLink>();
private void button1_Click(object sender, EventArgs e)
{
        Parallel.ForEach(Brands, item =>
        {
            string initialSiteName = "http://www.site1.com/" + Brands;
            DoScrape(initialSiteName);
        });

        StreamWriter sw03 = new StreamWriter("websiteCompanyDetails.txt");
        foreach (var item in CompanyInfo)
        {
            sw03.WriteLine("'"" +  item.Name + "'",'"" + item.Link + "'""    );
        }
}
public static void DoScrape(string PageLink)
{
    string SiteLink;
    string SiteName;
    SourceCode = WorkerClass.getSourceCode(nextPageLink);
    SiteLink = SourceCode.Substring(0, 50);
    SiteName = SourceCode.Substring(51, 50);
     CompanyInfo.Add(new LocationNameAndLink 
                     {
                         Name = SiteName,
                         Link = SiteLink 
                     });
                 }
  }

c#全局类-从一个方法添加,从另一个方法读取

您需要使DoScrape成为实例方法,而不是静态方法。

静态方法不特定于类型的任何特定实例,因此它没有隐式的this引用-而您的CompanyInfo字段是一个实例变量- Form1的每个实例都有一个单独的变量。

关于static含义的更多信息,请参阅MSDN -这是一个需要理解的重要概念。