Нужен совет по созданию архитектуры(?) класса - 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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д