Нужен совет по созданию архитектуры(?) класса - C#
Формулировка задачи:
Доброго времени суток.
Помогите, пожалуйста советом, так как мой "финт ушами", который я думал получится, не прошел.
Есть класс действий персонажа, который имеет метод действия и библиотеку по которой будет вычисляться возможность этого действия.
Дальше в классе персонажа, я объявлял вложенный клас действий и уже переписывал метод действия под нужное действие.
Мне надо вычислить среднее значение библиотеки каждого действия и занести его в список. Так как действий в будущем прогнозируется не мало, я хотел все действия вручную внести в список и потом специальным методом вычислять среднеи значения их библиотек.
Но не получилось. Мне выводит ошибку "Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка CS0119 'Persone.Eats" является тип, который недопустим в данном контексте."
Возможно есть другой путь решить мою задачу?
Листинг программы
- public abstract class PersonActions
- {
- public Dictionary<string, double> Exp = new Dictionary<string, double>()
- {
- // кольори
- ["red"] = 0.8,
- ["orange"] = 0.8,
- ["pink"] = 0.8,
- ["yellow"] = 0.8,
- ["green"] = 0.8,
- ["blue"] = 0.8,
- ["violet"] = 0.8,
- ["black"] = 0.8,
- ["brown"] = 0.8,
- ...
- };
- public abstract int Execute(SomeObject a);
- }
Листинг программы
- public class Persone : SomeObject
- {
- abstract class Eats : PersonActions
- {
- public override int Execute(SomeObject obj)
- {
- GlobalVars.ObjectsOnMap.Remove(obj);
- return obj.health;
- }
- }
- ...
Листинг программы
- public double Calculate_Motivation (PersonActions a) //підраховуєм мотивацію
- {
- double sum = 0;
- int count = 0;
- List<PersonActions> actions_list = new List<PersonActions>(); // список можливих дій
- actions_list.Add(Eats);
Решение задачи: «Нужен совет по созданию архитектуры(?) класса»
textual
Листинг программы
- public class Eats : PersonActions // abstract здесь не нужен
- {
- public override int Execute(SomeObject obj)
- {
- GlobalVars.ObjectsOnMap.Remove(obj);
- return obj.health;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д