C# Roslyn:为什么许多SymbolDisplay方法在ISymbol上有等效的实例对应项?

C# Roslyn:为什么许多SymbolDisplay方法在ISymbol上有等效的实例对应项?,c#,.net,roslyn,C#,.net,Roslyn,只是好奇,我注意到在Roslyn中,当涉及到串符号时,似乎有两种方法可以做同样的事情。您可以执行以下任一操作: // symbol is type ISymbol var symbolText = symbol.ToDisplayString(); 或 对于ToMinimalDisplayString、ToDisplayParts、以及ToMinimalDisplayParts,情况都是一样的。为什么Roslyn团队决定添加这两个API,而不是将SymbolDisplay静态方法设置为内部方法

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

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


对于
ToMinimalDisplayString
ToDisplayParts
、以及
ToMinimalDisplayParts
,情况都是一样的。为什么Roslyn团队决定添加这两个API,而不是将
SymbolDisplay
静态方法设置为内部方法?

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

我了解得更多。但是,为什么类不是内部的呢?有时您希望使用未定义符号的语言视图来格式化符号。也许看看C#样式的VB符号。好的,我明白了。非常感谢你的帮助!
var symbolText = SymbolDisplay.ToDisplayString(symbol);