2017-08-20 1 views
2

Nur neugierig, ich habe bemerkt, dass es zwei Möglichkeiten gibt, das gleiche zu tun, wenn es darum geht, Symbole in Roslyn zu stringieren. Sie können entweder tun:Roslyn: Warum haben viele SymbolDisplay-Methoden entsprechende Gegenstücke auf ISymbol?

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

oder

var symbolText = SymbolDisplay.ToDisplayString(symbol); 

Es ist die gleiche Geschichte für ToMinimalDisplayString, ToDisplayParts und ToMinimalDisplayParts. Warum hat das Roslyn-Team beschlossen, beide dieser APIs hinzuzufügen, anstatt die statischen Methoden SymbolDisplay intern zu machen?

Antwort

2

Die SymbolDisplay-Klasse befindet sich im CSharp-Namespace. Es ist die tatsächliche Implementierung, die ein Symbol im C# -Anzeigestil formatiert. Wenn Sie symbol.ToDisplayString() aufrufen, erhalten Sie die Symbolformatierung in der erklärenden Sprache des Symbols, die VB und nicht C# sein kann.

+0

Ich verstehe ein bisschen mehr. Warum wurde die Klasse nicht intern gemacht? –

+0

Manchmal möchten Sie ein Symbol mithilfe der Ansicht einer Sprache formatieren, in der es nicht definiert wurde. Vielleicht sehen Sie sich ein VB-Symbol im Stil von C# an. –

+0

OK, ich verstehe. Vielen Dank für die Hilfe! –

Verwandte Themen