“Interface not implemented” when Returning Derived Type

前端 未结 12 820
野趣味
野趣味 2020-11-27 21:11

The following code:

public interface ISomeData
{
    IEnumerable Data { get; }
}

public class MyData : ISomeData
{
    private List

        
12条回答
  •  自闭症患者
    2020-11-27 21:53

    What if you changed your interface to extend IEnumerable so you can enumerate the object and edit the data via the class property.

    public interface ISomeData : IEnumerable
    {
        IEnumerable Data { get; }
    }
    
    public class MyData : ISomeData
    {
        private List m_MyData = new List();
        public List Data { get { return m_MyData; }
    
        public IEnumerator GetEnumerator()
        {
            return Data;
        }
    
        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }
    }
    

提交回复
热议问题