Я использую System.Action
как мой делегат.C# Delegate: Как вызвать ВСЕ методы для события (делегата) с потенциальным исключением?
public event Action myEvent;
myEvent+=MyMethod1;
myEvent+=MyMethod2;
И где-то еще
myEvent.Invoke();
Теперь проблема, MyMethod1()
воли somethimes есть исключение при вызове. Но я все равно хочу, чтобы во время этого вызова вызывались MyMethod2()
.
Как это сделать?
О потенциальном исключении: Это действительно проблема Единства, когда метод зарегистрирован для события, и этот метод содержит взаимодействие с игровым объектом. Когда связанный MonoBehaviour удален, этот метод все еще существует, но взаимодействие с игровым объектом будет вызывать исключение.
Не можете ли вы избежать исключения в обработчиках событий? –
Я могу, но я хочу сделать это в коде делегата или события, потому что он более ясен в Unity. И я не хочу добавлять тег Unity, потому что это действительно чистый вопрос C#. – cdytoby
Я не знаю, почему вы думаете, что это «более ясно», но это неправильно. Я бы пошел с ответом Луаана ниже. –