Подписаться на вызов переменной

Программирование на Юнити.

Подписаться на вызов переменной

Сообщение Woland 17 янв 2022, 19:48

Привет!
Есть выражение по типу a=b+Sum
Я хочу сделать так, чтобы была возможность передавать в Sum значения методов из других классов (как подписка на события). К примеру, у нас есть 2 класса, у них есть методы
int ReturnValue() { return 1}

И тогда a=b+Sum то же самое, что и a=b+ класс1.ReturnValue()+класс2.ReturnValue()
можем создать класс3 и подписаться на Sum, или же отписаться. Можно ли это как-то сделать?
Woland
Адепт
 
Сообщения: 1240
Зарегистрирован: 20 апр 2013, 18:09
  • Сайт

Re: Подписаться на вызов переменной

Сообщение 1max1 17 янв 2022, 22:46

Синтаксис:
Используется csharp
public class XXX : MonoBehaviour
{
    void Start()
    {
        var classA = new A();

        classA.sumFunctions.Add(() => 1 + 2);
        classA.sumFunctions.Add(getInt);

        print(classA.a); // 6
    }

    int getInt()
    {
        return 3;
    }
}

class A
{
    public List<Func<int>> sumFunctions = new List<Func<int>>();

    public int a
    {
        get
        {
            int sum = 0;

            foreach (var func in sumFunctions)
            {
                sum += func();
            }

            return sum;
        }
    }
}
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13