Показать сообщение отдельно
Старый 18.02.2015, 07:22   #2032
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Сообщение от 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<Taction
Вместо скобок я бы написал

public void Invoke(T arg)
{
    if(
action != nullaction(arg);

__________________
Blitz3d to Unity Wiki

Последний раз редактировалось pax, 18.02.2015 в 09:26.
(Offline)
 
Ответить с цитированием