试图构造一个将返回arraylist的帮助器类,但是我遇到以下错误,这与我需要创建的xml文档有关:


  Util.oDocument':无法在静态类中声明实例成员


我想我理解为什么您不希望每次调用此方法时都创建一个新的xmldoc对象,但是我需要那里的文档来实现功能。我应该如何处理呢?

using System;
using System.Collections;
using System.Xml;

public static class Util
{

    public static ArrayList multipleArtistList(string artistName)
    {
        XmlDocument oDocument = new XmlDocument();

        string uri = "http://api.leoslyrics.com/api_search.php?auth=duane&artist=" + artistName;
        oDocument.Load(uri);

        XmlNodeList results = oDocument.GetElementsByTagName("name");
        ArrayList artistList = new ArrayList();

        for (int i = 0; i < results.Count; i++)
        {
            if (!artistList.Contains(results[i].InnerText))
            {
                artistList.Add(results[i].InnerText);

            }

        }

        return artistList;
    }

}

最佳答案

这个错误在这里:

Util.oDocument: cannot declare instance members in a static class


表示您已在方法外部声明了oDocument。

您发布的代码没有错,实际上错误和代码相互矛盾。

确保在方法内部声明了oDocument。如果要将其声明为字段,请确保为其赋予static修饰符,如下所示:

public static class Util
{
    static XmlDocument oDocument;

    /* code */
}

关于c# - 以为我了解静态类(class),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1814769/

10-10 01:42