Mam dwie metody w C# 3.5, które są identyczne bar jeden wywołanie funkcji, w opisie poniżej, zobacz clientController.GetClientUsername vs clientController.GetClientGraphicalUsernameW języku C# 3.5, Jak przekazać, która metoda wywoływania obiektu jako parametr
private static bool TryGetLogonUserIdByUsername(IGetClientUsername clientController, string sClientId, out int? logonUserId)
{
string username;
if (clientController.GetClientUsername(sClientId, out username))
{
// ... snip common code ...
}
return false;
}
private static bool TryGetLogonUserIdByGraphicalUsername(IGetClientUsername clientController, string sClientId, out int? logonUserId)
{
string username;
if (clientController.GetClientGraphicalUsername(sClientId, out username))
{
// ... snip common code ...
}
return false;
}
Czy istnieje sposób (delegaci? lambda), że mogę przechodzić w którym metoda na clientController chcę zadzwonić?
Dzięki!
Próbka jest instancją ogólnego problemu napotkanego podczas refakturowania bloków kodu, które są identyczne dla różnych wywołań metod. W szczególności wydaje mi się, że widzę je w testach. –