mam metoda A coś takiego: MetodyCzy istnieje sposób ogólny do wywołania innej metody, gdy metoda jest wywoływana w C#
public Something MyMethod()
{
Setup();
Do something useful...
TearDown();
return something;
}
konfigurację i przerywaniem są w klasie bazowej.
Problem polega na tym, że muszę wielokrotnie pisać ten typ metody za pomocą wywołań metod Setup() i TearDown().
EDYCJA: Podatkowa część tej metody polega na tym, że "Zrobić coś użytecznego ..." dotyczy tylko tej metody. Ta część jest inna dla każdej metody, którą tworzę.
Ponadto mogę mieć MyMethod2, MyMethod3, w jednej klasie. We wszystkich przypadkach chciałbym uruchomić instalowanie i rozłączanie. Czy istnieje elegancki sposób robienia tego bez konieczności pisania tego za każdym razem?
Być może mam urojenia, ale jest to sposób na dodanie atrybutu do metody i przechwycenie wywołania metody, więc mogę robić rzeczy przed i po wywołaniu?
To jest duplikat mnóstwa pytań. Czy próbowałeś szukać? Możesz używać delegatów, zdarzeń, metod abstrakcyjnych, programowania zorientowanego na aspekt i tak dalej. Na przykład [Uruchom metodę przed wszystkimi metodami klasy] (http://stackoverflow.com/questions/9192709/run-a-method-before-all-metods-of-a-class), [Call base function then then funkcja dziedziczona] (http://stackoverflow.com/questions/3747711/), [Wykonaj kod zanim wywołana funkcja zostanie wykonana] (http://stackoverflow.com/questions/10398530), [Wykonaj metodę przed i po bloku kodu ] (http://stackoverflow.com/questions/26484206/) i tak dalej. – CodeCaster
Chcesz użyć programowania zorientowanego na aspekt. Istnieje wiele narzędzi do tego. –
Dzięki CodeCaster, ale żadne z wspomnień, o których wspomniałeś, nie pomoże w moim przypadku, ponieważ w moim przypadku mogę mieć wiele z tych "MyMethods" w jednej klasie z różnymi nazwami metod, różnymi parametrami i różnymi wartościami zwracanymi. – Steven