Для целей моего университетского проекта мне нужно реализовать циклический связанный список, который содержит некоторые конкретные элементы. Проблема: я хочу, чтобы элемент связанного списка имел указатель на функцию из класса, который его создает. Чтобы показать проблему в псевдо-C #:
using System;
class Game{
internal void state1(){
Console.WriteLine("Executing state1 code");
}
internal void state2(){
Console.WriteLine("Executing state1 code");
}
Element elem1 = new Elem(state1);
Element elem2 = new Elem(state2);
elem1.Call();
elem2.Call();
}
class Element{
FunctionPointer Call = null;
Element(FunctionPointer function){
Call = function;
}
}
Я пытался использовать делегат, но не совсем правильно понял. Можно ли как-то добиться этого с помощью интерфейсов?
Мой представитель попытается:
using System;
public delegate void MyDelegate();
class Game{
internal void state1(){
Console.WriteLine("Executing state1 code");
}
internal void state2(){
Console.WriteLine("Executing state1 code");
}
Element elem = new Element(new MyDelegate(state1));
}
class Element{
MyDelegate functionPointer = null;
Element(MyDelegate func){
functionPointer = func;
}
}