Получение значения переменной и добавление ее в List
Мне нужно чтобы я мог в конструкторе базового класса вызвать некий метод.
Он, в свою очередь, взял бы указанное в MyClass текущее значение переменной counter
и добавил его в лист MyObject.Data.
Комментариями в коде я постарался описать, то что я хочу, но реализовать это мне не удалось.
public class MyObject
{
public string Name { get; set; }
private List<int> Data = new();
// Здесь указать что-то вроде
// public Action<int> GetValue;
}
public abstract class Base
{
public MyObject Obj;
public Base()
{
// Здесь указать что-то вроде
// Obj.GetValue();
}
}
public class MyClass : Base
{
int counter = 50;
public MyClass()
{
Obj = new()
{
Name = "One",
// здесь указать что-то вроде
// GetValue => counter
});
}
}
Ответы (1 шт):
Автор решения: root.glukhov
→ Ссылка
Нашел решение своего вопроса
public class MyObject
{
public string Name { get; set; }
public List<int> Data = new List<int>();
public Func<int> GetValue { get; set; }
public void AddValue(int value)
{
Data.Add(value);
}
}
public abstract class Base
{
public MyObject Obj;
public abstract void Initialize();
public Base()
{
Initialize();
Obj.AddValue(Obj.GetValue());
foreach(var a in Obj.Data)
{
Console.WriteLine(a);
}
}
}
public class MyClass : Base
{
int counter = 50;
public override void Initialize()
{
Obj = new MyObject
{
Name = "One",
GetValue = () => counter
};
}
}