C#语法解读
1,在this IServiceCollection services中,this是什么作用?
2,在Action builderAction中,>是什么作用?
3,在 => services和s =>中,=>是什么作用,两处有什么区别?
#region Add General Purpose Service
public static IServiceCollection AddDicomServer(this IServiceCollection services, Action<DicomServerServiceOptions> optionsAction, Action<DicomServiceBuilder> builderAction)
=> services
.UseFellowOakDicom()
.AddTransient<IHostedService>(s =>
{
var builder = new DicomServiceBuilder();
builderAction(builder);
var dicomService = new GeneralPurposeDicomServerService(s.GetRequiredService<IConfiguration>(), s.GetRequiredService<IDicomServerFactory>(), builder);
optionsAction(dicomService.Options);
return dicomService;
});
#endregion
1,在this IServiceCollection services中,this是什么作用?
这个叫做扩展方法,目的是给一个类型额外添加一个方法,而不改变这个类型的定义
2,在Action builderAction中,>是什么作用?
Action<DicomServiceBuilder> 这是一个泛型委托,代表一个参数为DicomServiceBuilder,没有返回值的方法
3,在 => services和s =>中,=>是什么作用,两处有什么区别?
=> 是Lambda表达式,你可以理解为相当于定义了一个函数,箭头左边是参数,右边是函数体