Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

Почему только статические методы?

#c_sharp


Да, в C# очень обширная библиотека. Но почему то многие методы только статические.
А хотелось бы ООП. А так, это же функциональщина получается.
Взать тот же метод ForEach для массивов. Не применяется он к экземпляру
класса. Пробовал сделать такую обёртку:

class Arr:Array
{
    public void forEach(Action act)
        {Array.ForEach(this,act);}

}


Выдаётся ошибка, что от System.Array нельзя наследоваться.
Может как то можно прилепить к массиву такой интерфейс
с минимумом кода?
    


Ответы

Ответ 1



Напишите метод расширения: static class ArrayExt { public static void ForEach(this T[] source, Action action) { Array.ForEach(source, action); } } Использовать можно, например, так: int[] arr = { 1, 2, 3, 10 }; arr.ForEach(Console.WriteLine);

Комментариев нет:

Отправить комментарий