Это лямбда-выражение .
Я полагаю, что метод SetLocatorProvider
имеет такую подпись, как:
SetLocatorProvider( Func<IServiceLocator> callback ):
Теперь вы должны предоставить такуюПерезвоните.Есть в основном три варианта:
Использовать метод (всегда работает):
private IServiceLocator GetServiceLocator() { /* return IServiceLocator */ }
ServiceLocator.SetLocatorProvider( GetServiceLocator() );
Использовать делегат (требуется C # 2.0):
ServiceLocator.SetLocatorProvider( delegate
{
// return IServiceLocator
} );
Используйте лямбда (требуется C # 3.0):
Это кодвы видите ...
Поскольку аргумента нет (Func<IServiceLocator>
имеет только возвращаемое значение), вы указываете это с помощью ()
:
ServiceLocator.SetLocatorProvider( () => { /* return IServiceLocator */ } );
, это можно перевести в
ServiceLocator.SetLocatorProvider( () => /* IServiceLocator */ );
Может быть, вы хотите прочитать этот вопрос + ответ тоже.