5
在Roslyn(Microsoft.CodeAnalysis)中,SyntaxToken
有Text
和ValueText
字段。在迄今爲止我觀察到的所有情況中,這兩個值是相同的。 ValueText
有文件,而Text
沒有。據我所知,這是唯一的區別。在什麼情況下Text可能與ValueText不同
爲什麼兩者都存在?他們會在什麼情況下有所不同,爲什麼?
在Roslyn(Microsoft.CodeAnalysis)中,SyntaxToken
有Text
和ValueText
字段。在迄今爲止我觀察到的所有情況中,這兩個值是相同的。 ValueText
有文件,而Text
沒有。據我所知,這是唯一的區別。在什麼情況下Text可能與ValueText不同
爲什麼兩者都存在?他們會在什麼情況下有所不同,爲什麼?
爲什麼兩者都存在?
因爲它們有時會不同並且都有用。
在什麼情況下會有所不同,爲什麼?
int @interface = 123;
的@interface
令牌的Text
是@interface
。 ValueText
是interface
。文本告訴你什麼是文本,因爲它出現在源代碼。價值文本從邏輯上告訴你,這件事情的文字是什麼?用作標識符的轉義關鍵字在邏輯上是關鍵字的文本;這是標識符的名稱。
還有其他情況下文本和值文本可以不同;看看你是否能找到一些。
猜測未經測試:'\ u0061 \ u0062 \ u0063'可能具有'\ u0061 \ u0062 \ u0063'的'文本'和'abc'的'ValueText'。 – Brian
數字文字是另一種可能性:'1.2f';文本是'1.2f',ValueText是'1.2'。 – InBetween