Поскольку невозможно переопределить статический класс в c #, если я хочу переопределить метод, я обычно определяю делегата, совпадающего с сигнатурой статического метода, затем модифицируйте метод в соответствии с:
public static void foo(int bar)
{
if (delegatename!=null)
{
delegatename.Invoke(bar);
}
else
{
//execute previous code as normal
}
}
Я чувствую укол вины, зная, что это немного грязно.
Может кто-нибудь предложить более точное решение этой проблемы (кроме переписывания исходной структуры)