Могу ли я установить свойство для массива? - PullRequest
1 голос
/ 18 октября 2010

В настоящее время у меня есть переменная и свойство:

private System.Xml.Linq.XDocument myDoc;

public System.Xml.Linq.XDocument getMyDoc
        {
            get
            {
                return myDoc;
            }
            set
            {
                myDoc = value;
            }
        }

теперь мне нужно два документа:

private System.Xml.Linq.XDocument[] myDoc; // array with 2 or 3 XDocuments

Я надеюсь, что я смогу получить или установить определенный элемент массива:

get
{
return myDoc(0);
}
set 
{
myDoc(0)=value;
}

возможно ли это?

Если это важно ... У меня нет всей информации в одном месте, поскольку я использую многопоточность.

1 Ответ

2 голосов
/ 18 октября 2010

Вы можете изменить переменную docs на массив, а затем использовать индексатор:

public class MyXmlDocument
{
    private readonly System.Xml.Linq.XDocument[] docs;

    public MyXmlDocument(int size)
    {
        docs = new System.Xml.Linq.XDocument[size];
    }

    public System.Xml.Linq.XDocument this [int index]
    {
        get
        {
            return docs[index];
        }
        set
        {
            docs[index] = value;
        }
    }
}

static void Main(string[] args)
{
    // create a new instance of MyXmlDocument which will hold 5 docs
    MyXmlDocument m = new MyXmlDocument(5);

    // use the indexer to set the element at position 0
    m[0] = new System.Xml.Linq.XDocument();

    // use the indexer to get the element at position 0
    System.Xml.Linq.XDocument d = m[0];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...