Не реализуется интерфейс IList. Не позволяет использовать модификаторы public - C#

Узнай цену своей работы

Формулировка задачи:

Как правильно реализовать интерфейс, что бы все методы были публичные и доступны через объект? На примере строки 41 покажите правильную реализацию.
using System;
using System.ComponentModel;
using System.Collections.Generic;
 
namespace Application
{
    public class BindList<T> : IList<T>
    {
        private List<T> _list;
 
        public event EventHandler AddingNew;
        public event EventHandler ListChanged;
        private void OnAddingNew (object sender, EventArgs e) {
            this.AddingNew(sender, e);
        }
        private void OnListChanged (object sender, EventArgs e) {
            this.ListChanged(sender, e);
        }
 
        private void _resetBindings () {
            this.AddingNew = null;
            this.AddingNew += delegate { };
            this.ListChanged = null;
            this.ListChanged += delegate { };
        }
 
        public BindList () {
            this._resetBindings();
            this._list = new List<T>();
        }
 
        public BindList (List<T> list) {
            this._resetBindings();
            this._list = new List<T>(list);
        }

        // Если public - Ошибка
        // public int IList<T>.IndexOf (T item) { ...
        int IList<T>.IndexOf (T item) {
            return this._list.IndexOf(item);
        }
 
        void IList<T>.Insert (int index, T item) {
            this.OnAddingNew(this, EventArgs.Empty);
            this._list.Insert(index, item);
        }
 
        void IList<T>.RemoveAt (int index) {
            this.OnListChanged(this, EventArgs.Empty);
            this._list.RemoveAt(index);
        }
 
        T IList<T>.this[int index] {
            get {
                return this._list[index];
            }
            set {
                this.OnListChanged(this, EventArgs.Empty);
                this._list[index] = value;
            }
        }
 
        void ICollection<T>.Add (T item) {
            this.OnAddingNew(this, EventArgs.Empty);
            this._list.Add(item);
        }
 
        void ICollection<T>.Clear () {
            this.OnListChanged(this, EventArgs.Empty);
            this._list.Clear();
        }
 
        bool ICollection<T>.Contains (T item) {
            return this._list.Contains(item);
        }
 
        void ICollection<T>.CopyTo (T[] array, int arrayIndex) {
            this._list.CopyTo(array, arrayIndex);
        }
 
        int ICollection<T>.Count {
            get { return this._list.Count; }
        }
 
        bool ICollection<T>.IsReadOnly {
            get { return false; }
        }
 
        bool ICollection<T>.Remove (T item) {
            this.OnListChanged(this, EventArgs.Empty);
            return this._list.Remove(item);
        }
 
        IEnumerator<T> IEnumerable<T>.GetEnumerator () {
            return this._list.GetEnumerator();
        }
 
        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator () {
            return this._list.GetEnumerator();
        }
    }
 
    static class Program
    {
        
        static void Main () {
            BindList<int> bList = new BindList<int>();
            
        }
    }
}

Решение задачи: «Не реализуется интерфейс IList. Не позволяет использовать модификаторы public»

textual
Листинг программы
public interface I1
        {
            void A();
        }
 
        public interface I2
        {
            void A();
        }
 
        public class A1 : I1, I2
        {
            void I1.A()
            {
            }
 
            void I2.A()
            {
            }
        }
 
        public class A2 : I1, I2
        {
            public void A()
            {
            }
 
            void I2.A()
            {
            }
        }
 
        public class A3 : I1, I2
        {
            void I1.A()
            {
            }
 
            public void A()
            {
            }
        }
 
        public class A4 : I1, I2
        {
            public void A()
            {
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы