我定义了一个继承ArrayList的类,部分代码如下:
public class Items
{
  public override object this[int index]
        {
            get
            {
                return base[index];
            }
            set
            {
                base[index] = value;
            }
        }
.....
.....
}
其中重载了 this这个属性,但我想把它改成下面的样子,以方便调用
public MyClass this[int index],
因为如果是 object 的话,调用时就需要这样写 MyClass m =(MyClass)it[0];
我想实现  MyClass m = it[0];
可我改成public MyClass this[int index] 后在编译时就报了错,错误如下:
Cannot implicitly convert type 'object' to 'WindowsApplication1.MyClass'. An explicit conversion exists (are you missing a cast?)要实现这个目标 我该怎么弄?  谢谢!!

解决方案 »

  1.   

    我有个类似的   
     class DictionaryTest:DictionaryBase 
        {
            public DictionaryTest()
            {
            }
            public void Add(string DictionaryID, string Value)
            {
                Dictionary.Add(DictionaryID, Value);
            }
            public void Remove(string DictionaryID)
            {
                Dictionary.Remove(DictionaryID);
            }
            public DictionaryTest this[string DictionaryID]
            {
                get 
                {
                    return (DictionaryTest)Dictionary[DictionaryID];
                }
                set
                {
                    Dictionary[DictionaryID] = value;
                }
            }
        }