我可以为数组设置属性吗?

时间:2010-10-18 13:04:02

标签: .net multithreading arrays properties

目前我有一个变量和一个属性:

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 个答案:

答案 0 :(得分:2)

您可以将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];
}