问题
当我尝试在异步方法中调用我的“普通”方法时,调试器会忽略它1。
这是我的异步方法:
[原始回答]
internal async static Task<DefinitionsModel> DeserializeAsync(this string path)
{
var model = new DefinitionsModel();
var content = await File.ReadAllTextAsync(path);
model.Pages = content.GetPages();
return model;
}
最初的回答是:
这里是我的“常规”方法
。private static IEnumerable<PageModel> GetPages(this string content)
{
var level = 0;
var value = nameof(PageModel.Page).GetDElement<PageModel>();
var start_with_line = $"{level} {value} ";
var end_with_line = string.Concat(Enumerable.Repeat(Environment.NewLine, 2));
var expression = $@"\b{start_with_line}\S * {end_with_line}\b";
var matches = content.GetPagesFromContent(expression);
yield return new PageModel();
}
HELPER PICTURES
IEnumerable<T>
结果未被迭代/持久化。例如,当在 foreach 循环中使用该方法时,它才会被执行。 - Jeroen van Langenyield
语句的方法确实很奇怪,为什么不直接返回一个单个的PageModel
? - DavidG