Eventos roteados e propriedades de dependência Confusão do wrapper .NET

Sou novo no WPF e tenho uma confusão sobre a quebra de sintaxe de eventos roteados e propriedades de dependência que já vi em muitas fontes que eventos roteados e propriedades de dependência são agrupados dessa maneira

// Routed Event
public event RoutedEventHandler Click
{
 add
 {
  base.AddHandler(ButtonBase.ClickEvent, value);
 }
 remove
 {
  base.RemoveHandler(ButtonBase.ClickEvent, value);
 }
}

// Dependency Property
public Thickness Margin
{
 set { SetValue(MarginProperty, value); }
 get { return (Thickness)GetValue(MarginProperty); }
}

Eu nunca vi adicionar / remover / definir / obter tipos de palavras-chave em c #. Eles fazem parte da linguagem C # como palavras-chave e eu nunca experimentei ou trabalhei com eles porque não trabalhei em C # como profissional, sou um programador de C ++? Se não houver palavras-chave, como elas são tratadas pelo compilador se não fazem parte do C # e como estão funcionando

questionAnswers(1)

yourAnswerToTheQuestion