c# – 内联隐式声明的out变量编译但不获得Visual Studio支持

请考虑以下方案:

作品:

SemanticModel semanticModel;
document.TryGetSemanticModel(out semanticModel);

不起作用:

var semanticModel;
document.TryGetSemanticModel(out semanticModel);

作品:

document.TryGetSemanticModel(out SemanticModel semanticModel);

工作,但:

document.TryGetSemanticModel(out var semanticModel);

但是:代码编译,但没有关于悬停的智能感知或文档.最后一种方法是否被认为是第二种方法的语法糖(导致下面的错误)或者它不仅仅是那个?

Implicitly-typed variables must be initialized

那我在看实现或Visual Studio中的错误吗?

最佳答案 我怀疑一旦C#6编译器完成,这可能会起作用.现在,它确实编译,但Roslyn仍在进行中,而intellisense在当前版本中有局限性.

So am I looking at a bug in the implementation or Visual Studio?

这很可能是Visual Studio使用的编译器服务中的“bug”(实际上还没有实现的功能).我建议将其归档为Issue in the Roslyn Codebase.

点赞