如何将方法索引器更改为索引器的属性?

时间:2009-12-23 03:48:04

标签: c#

public ArrayList choiceArray = new ArrayList();
public UC_RadioX Item(int index)
        {
            return (UC_RadioX)choiceArray[index];
        }

我用的时候:

    cc.Item(0).Checked = true;
    cc.Item(1).Checked = true;

如何将方法更改为属性?

2 个答案:

答案 0 :(得分:2)

您可以通过以下方式定义Indexers

// ...
public ArrayList choiceArray = new ArrayList();
public UC_RadioX this[int index]
{
    get
    {
        return (UC_RadioX)choiceArray[index];
    }
}
// ...

这将允许您在类实例本身上使用[]表示法:

cc[0].Checked = true;
cc[1].Checked = true;

答案 1 :(得分:1)

以下是一个例子:

http://msdn.microsoft.com/en-us/library/2549tw02.aspx

根据您对其他答案的回复,我认为您可以更轻松地执行您要对属性public List<UC_RadioX> Item { get;set;}执行的操作,然后,您将直接访问UC_RadioX对象,并且可以访问它通过索引器。这将适用于C#2.0及更高版本。自动实现的属性{get;set;}是C#3.0及更高版本。

在实例化为cc的对象中访问这些项目可以像:

UC_RadioX rx = cc.Item[0];
bool good = cc.Item[1].checked;