delegate / event c#

118
05 апреля 2021, 08:50

вопрос простой но для профи. значит есть event и пара методов для добавления и удаления.

если делать -= какойтoМетод; при том что этот метод туда не был добавлен ранее, что то может произойти? к примеру может он что-то другое удалить в этом событии?

Answer 1

В исходниках есть проверка на существование, так что ты просто потратишь таким образом процессорное время:

protected virtual Delegate RemoveImpl(Delegate d)
{
   return (d.Equals(this)) ? null : this;
}
public static Delegate Remove(Delegate source, Delegate value)
{
        if (source == null)
            return null;
        if (value == null)
            return source;
        if (!InternalEqualTypes(source, value))
            throw new ArgumentException(Environment.GetResourceString("Arg_DlgtTypeMis"));
        return source.RemoveImpl(value);
 }
READ ALSO
NullReferenceException при попытке проверки объекта на null [дубликат]

NullReferenceException при попытке проверки объекта на null [дубликат]

При проверке value на null в индексаторе возникает ошибка:

114
Проблема с перегрузкой в c#

Проблема с перегрузкой в c#

Делал гибкий класс, но в итоге С# не позволяет мне перегрузить операторыСамое главное, что это два разных метода(возвращает другой тип), но всё...

108
Как быстро сгенерировать строки по маске?

Как быстро сгенерировать строки по маске?

Стоит задача сгенерировать строки со случайной вставкой символа * в любое место строкиМаксимум таких символов может быть в строке 4

196