Итак, у меня есть следующий элемент управления, расширенный с Label
public Hyperlink()
{
var tapGesture = new TapGestureRecognizer();
tapGesture.Tapped += TapGesture_Tapped;
this.GestureRecognizers.Add(tapGesture);
}
Теперь мой вопрос: нужно ли отсоединять GestureRecogniser
?
Мое понимание GarbageCollection заключается в том, что поскольку объект Hyperlink
отвечает за tapGesture
, он должен иметь возможность его утилизировать; но это мир Xamarin.Forms, где все идет.
Так что мне нужен код Dispose
, чтобы избежать потенциальной утечки памяти и сохранить объект живым
public void Dispose()
{
if (this.GestureRecognizers.Count > 0)
{
var tapGesture = this.GestureRecognizers[0] as TapGestureRecognizer;
tapGesture.Tapped -= TapGesture_Tapped;
this.GestureRecognizers.Clear();
}
}
Эта ссылка , а также Эта ссылка говорит, что я должен удалить GestureRecognisers
, но не раскрывает, почему