Не реализуется интерфейс 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() { } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д