Сообщение от ANIK123
В С++ есть возможность перегрузки круглых скобок:
int operator ()(int i) {return i;}
Как такое провернуть в C#? Что-то типа:
public int this(int i){return i;}
|
Возможно тебе нужен индексатор:
https://msdn.microsoft.com/ru-ru/library/2549tw02.aspx А может я тебя не правильно понял. Да не правильно. Круглые скобки не перегрузить.
Я пользуюсь стандартными делегатами System.Action, System.Func без всяких оберток. Их там много вариантов, они так же в Linq используются.
в твоем случае можно заменить
public delegate void Portrait(T arg);
private event Portrait action;
на
private event Action<T> action;
Вместо скобок я бы написал
public void Invoke(T arg)
{
if(action != null) action(arg);
}