2017-08-20 6 views
2

ちょうど興味がありましたが、私はRoslynの記号を文字列にすることに関して同じことをする2つの方法があるように見えました。あなたは行うことができ、次のいずれかRoslyn:多くのSymbolDisplayメソッドがISymbolで同等のインスタンス対応を持つのはなぜですか?

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

または

var symbolText = SymbolDisplay.ToDisplayString(symbol); 

それはToMinimalDisplayStringToDisplayParts、およびToMinimalDisplayPartsに同じ話です。なぜRoslynチームは、SymbolDisplay静的メソッドを内部にするのではなく、これらのAPIを両方とも追加することにしましたか?

答えて

2

SymbolDisplayクラスはCSharp名前空間にあります。これは、C#の表示スタイルでシンボルをフォーマットする実際の実装です。 symbol.ToDisplayString()を呼び出すと、シンボルの宣言言語でシンボルの書式が取得されます。これはVBであってC#ではない可能性があります。

+0

もう少し理解します。しかし、なぜクラスは内部に作られていないのですか? –

+0

時には、定義されていない言語のビューを使用してシンボルをフォーマットしたいことがあります。多分、C#のスタイルのVBシンボルを見てください。 –

+0

OK、わかりました。助けてくれてありがとう! –

関連する問題