我正在尝试理解以下代码:
flow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer { DataStore = new FileDataStore("Tasks.ASP.NET.Sample.Store"), ClientSecretsStream = stream, Scopes = new[] { TasksService.Scope.TasksReadonly } });
根据我的理解,第一个和最后一个{...}之间的代码是匿名函数的主体.新的FileDataStore创建FileDataStore的新实例.我不明白的是它最后的逗号是什么意思.它后面的两行也有逗号.在C#中称为什么样的构造?我不熟悉它.
不,它不是匿名函数的主体.它是一个初始化列表 ..它用于设置GoogleAuthorizationCodeFlow.Initializer
所有类型的新对象的字段.
它是这个的"内嵌"版本:
var initializer = new GoogleAuthorizationCodeFlow.Initializer(); initializer.DataStore = new FileDataStore("Tasks.ASP.NET.Sample.Store"); initializer.ClientSecretsStream = stream; initializer.Scopes = new[] { TasksService.Scope.TasksReadonly }; flow = new GoogleAuthorizationCodeFlow(initializer);
这两者在功能上是等价的.它更紧凑.