2017-10-04 55 views
5

在Roslyn(Microsoft.CodeAnalysis)中,SyntaxTokenTextValueText字段。在迄今爲止我觀察到的所有情況中,這兩個值是相同的。 ValueText有文件,而Text沒有。據我所知,這是唯一的區別。在什麼情況下Text可能與ValueText不同

爲什麼兩者都存在?他們會在什麼情況下有所不同,爲什麼?

回答

10

爲什麼兩者都存在?

因爲它們有時會不同並且都有用。

在什麼情況下會有所不同,爲什麼?

int @interface = 123; 

@interface令牌的Text@interfaceValueTextinterface。文本告訴你什麼是文本,因爲它出現在源代碼。價值文本從邏輯上告訴你,這件事情的文字是什麼?用作標識符的轉義關鍵字在邏輯上是關鍵字的文本;這是標識符的名稱。

還有其他情況下文本和值文本可以不同;看看你是否能找到一些。

+0

猜測未經測試:'\ u0061 \ u0062 \ u0063'可能具有'\ u0061 \ u0062 \ u0063'的'文本'和'abc'的'ValueText'。 – Brian

+0

數字文字是另一種可能性:'1.2f';文本是'1.2f',ValueText是'1.2'。 – InBetween

相關問題