Załóżmy Mam interfejsu z metody rodzajowe i ma parametry:wyśmianie metody generyczne
public interface Interface {
void Method<T>();
}
Teraz pragnę realizować makiety dla tej klasy (używam Moq
) i życzę, aby drwić z tej metody dla konkretnego typu - powiedzmy, że kpię z połączeń Method<String>()
.
mock = new Mock<Interface>();
mock.Setup(x => x.Method ????).Returns(String("abc"));
Pomysł ????
powinno być jasne - to wyrażenie lambda powinna obsłużyć przypadek, gdy T
w Method<T>
jest rzeczywiście String
.
Czy jest jakiś sposób mogę osiągnąć żądaną zachowanie?
Gdyby nie '' Metoda ciąg być '' Metoda T ? –
Scott
@Secret Agent Man, nie, nie powinien. Przynajmniej nie ma niczego, co by to zobowiązało. To był tylko przykład, który wziąłem. Metoda może zwrócić, co chcesz. Jeśli chcesz, możesz zastąpić typ zwracany 'string' przez' T', przykład będzie działał. –