Я разрабатываю программу, которая активно использует делегатов. Для простоты предположим, что у меня есть следующий класс:Как ссылаться на делегат C# из своего кодового блока?
class ProcContainer<T>
{
public delegate T Proc(ProcContainer<T> parentContainer); // my delegate type
public Proc Content; // a field in the class in which a Proc "instance" is stored
}
Выражаясь словами: Proc
является типом делегата, который принимает ProcContainer
как ее (только) аргумент. И ProcContainer
содержит Proc
«экземпляр» в своем поле Content
.
Теперь я хочу, чтобы создать делегат, как это:
T someVal = new T();
ProcContainer<T>.Proc proc = delegate(ProcContainer<T> parentContainer)
{
parentContainer.Content = <<<this_delegate>>>;
return someVal;
};
Опять же, выражаясь словами: Я хотел бы создать экземпляр Proc
приняв ProcContainer
, который устанавливает содержание ProcContainer
к Proc
под рукой.
Поэтому, если вызывается мой Proc
, он должен сам переписать текущее содержимое предоставленного ProcContainer
.
Вопросы: Могу ли я сделать это на C#? Если да: как?
объявить 'ProcContainer .Proc proc = null'; перед назначением его реальным кодом ... 'ProcContainer .Proc proc = null; proc = delegate (......) ' –
Eser