У меня есть список Func, и я хочу добавить элементы. Если я не добавить их на старт, как показано ниже, не проблема:Добавить методы в Func
public List<System.Func<bool>> conditions = new List<System.Func<bool>>();
void Start()
{
conditions.Add(Iamdead);
conditions.Add(Iamalive);
}
bool Iamdead()
{
...
return ...;
}
bool Iamalive()
{
...
return ...;
}
Но я хочу, чтобы определить список без Start, так что у меня есть чистый список методов, которые я вижу в качестве элементов в строке. Я попробовал классический формат:
public List<System.Func<bool>> conditions = new List<System.Func<bool>>()
{
bool Iamdead()
{
...
return ...;
}
,
bool Iamalive()
{
...
return ...;
}
};
Это дало мне разбор ошибки
Я пытался так:
public List<System.Func<bool>> conditions = new List<System.Func<bool>>()
{
Iamdead,Iamalive
};
static bool Iamdead()
{
...
return ...;
}
static bool Iamalive()
{
...
return ...;
}
Это работает только если методы являются статическими, но я не хочу, чтобы они быть статичным. Без статичности это не работает. Кажется, я не мог понять структуру данных здесь. Может ли кто-нибудь сказать мне правильный способ определения Func в списке?
Благодаря
Пожалуйста, приложить больше усилий в форматировании ваши сообщения. В настоящее время код * очень трудно прочитать. Кроме того, «это не работает» не дает никакой информации. –
У вашего оригинального вопроса были методы, которые всегда возвращали 'true' или' false' (жестко закодированные)? Это, похоже, вызвало некоторую путаницу в ответах ... –
Да, Func возвращает только true или false, но, конечно, методы Iamdead, Iamalive будут иметь свои собственные вычисления, кроме возвращающихся мертвыми, живыми – sonny