Disons que j'ai une interface IMyInterface<T>
qui décrit simplement une fonction:conversion implicite à Func
public interface IMyInterface<T>
{
T MyFunction(T item);
}
je pouvais remplacer à ce sujet avec Func<T, T>
, mais je veux l'interface pour des raisons sémantiques. Puis-je définir une conversion implicite entre cette interface et Func<T,T>
de sorte que je puisse passer un délégué anonyme ou lambda en tant qu'argument à une fonction qui accepte cette interface en tant que paramètre, exactement comme si j'avais utilisé Func<T,T>
à la place?
Pour démontrer, en utilisant l'interface déclarée ci-dessus, je veux une fonction comme ceci:
public T TestFunction<T>(IMyInterface myInterface, T value)
{
return myInterface.MyFunction(value);
}
que je peux appeler comme ceci:
TestFunction<string>(x => return x + " world", "hello");
Et le résultat serait « Bonjour tout le monde ».
Vouliez-vous appeler IMyInterface.MyFunction() dans le deuxième bloc de code? – Andy
Oui, merci. Fixé. –