日期:2014-05-18  浏览次数:20975 次

继承ArrayList类,实现 this[int index]时的一个问题 顶者有分
我定义了一个继承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?)

要实现这个目标   我该怎么弄?     谢谢!!


------解决方案--------------------
顶者有分就顶呗。。
------解决方案--------------------
我有个类似的
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;
}
}
}
------解决方案--------------------
为什么不用泛型?
------解决方案--------------------
顶 哈哈
------解决方案--------------------
不是很懂,帮你顶一下