Думал я понял статические классы - PullRequest
1 голос
/ 29 ноября 2009

Попытка создать вспомогательный класс, который будет возвращать массив списков, но я получаю следующую ошибку, связанную с документом 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;
    }

}

1 Ответ

4 голосов
/ 29 ноября 2009

Эта ошибка здесь:

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

означает, что вы объявили oDocument вне метода.

В размещенном вами коде нет ничего плохого, на самом деле ошибка и код противоречат друг другу.

Убедитесь, что oDocument объявлено внутри метода. Если вы хотите объявить его как поле, обязательно укажите модификатор static, например:

public static class Util
{
    static XmlDocument oDocument;

    /* code */
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...