只是好奇,我注意到在Roslyn中将符号字符串化时,似乎有两种方法可以做相同的事情。您可以执行以下任一操作:

// symbol is type ISymbol
var symbolText = symbol.ToDisplayString();


要么

var symbolText = SymbolDisplay.ToDisplayString(symbol);


ToMinimalDisplayStringToDisplayPartsToMinimalDisplayParts的情况与此相同。 Roslyn团队为什么决定添加这两个API而不是将SymbolDisplay静态方法设置为内部方法?

最佳答案

SymbolDisplay类位于CSharp命名空间中。实际的实现是使用C#显示样式格式化符号。当您调用symbol.ToDisplayString()时,您将以符号的声明语言获取符号格式,该语言可以是VB而不是C#。

10-06 15:59