Ошибка "A field initializer cannot reference the non-static field, method, or property" - C#

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

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

Здравствуйте,объясните пожалуйста,почему возникает ошибка:"A field initializer cannot reference the non-static field, method, or property 'GenericsHW.MyList<T>.array' ".Ведь в методе Contains(T item) организован точно такой же цикл,но ошибки нет;с чем это связано?При чём если я сделаю array статическим,то всё ок(почему нужно писать static?). Заранее спасибо
Листинг программы
  1. namespace GenericsHW
  2. {
  3. interface IMyList<T>
  4. {
  5. void Add(T a);
  6. T this[int index] { get; }
  7. int Count { get; }
  8. void Clear();
  9. bool Contains(T item);
  10. }
  11.  
  12. class MyList<T>:IMyList<T>
  13. {
  14. T[] array = null;
  15. delegate void ShowArrayElements();
  16.  
  17. public MyList()
  18. {
  19. array = new T[0];
  20. }
  21. public int Count
  22. {
  23. get { return array.Length; }
  24. }
  25. public void Add(T a)
  26. {
  27. T[] temp = new T[array.Length + 1];
  28. for (int i = 0; i < array.Length; i++)
  29. temp[i] = array[i];
  30. temp[array.Length] = a;
  31. array = temp;
  32. }
  33. public T this[int index]
  34. {
  35. get { return array[index]; }
  36. }
  37. public void Clear()
  38. {
  39. array = new T[0];
  40. }
  41. public bool Contains(T item)
  42. {
  43. foreach (T ar in array)
  44. {
  45. if (ar.Equals(item))
  46. return true;
  47. }
  48. return false;
  49. }
  50. public override string ToString()
  51. {
  52. return String.Format("Количество элементов массива:{0}\n", array.Length);
  53. }
  54. private ShowArrayElements showArray = () =>
  55. {
  56. foreach (T ar in array)
  57. {
  58. Console.WriteLine("{0} ",ar);
  59. }
  60. };
  61.  
  62. }
  63. }

Решение задачи: «Ошибка "A field initializer cannot reference the non-static field, method, or property"»

textual
Листинг программы
  1.         private ShowArrayElements showArray => () =>
  2.         {
  3.             foreach (T ar in array)
  4.             {
  5.                 Console.WriteLine("{0} ", ar);
  6.             }
  7.         };

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


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

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

12   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы