2017-10-04 18 views
5

Trong Roslyn (Microsoft.CodeAnalysis), SyntaxToken s có các trường TextValueText. Trong tất cả các tình huống mà tôi đã quan sát cho đến nay, hai giá trị này giống nhau. ValueText có tài liệu trong khi Text thì không. Theo như tôi có thể nói, đó là sự khác biệt duy nhất.Trong trường hợp nào, Văn bản có thể khác với ValueText

Tại sao cả hai tồn tại? Trong tình huống nào họ sẽ khác nhau, và tại sao?

Trả lời

10

Tại sao cả hai tồn tại?

Vì đôi khi chúng khác nhau và cả hai đều hữu ích.

Trong trường hợp nào chúng khác biệt và tại sao?

int @interface = 123; 

Các Text của @interface mã thông báo là @interface. ValueTextinterface. Văn bản cho bạn biết văn bản như được xuất hiện trong mã nguồn là gì. Văn bản giá trị cho bạn biết một cách logic, văn bản của điều này là gì? Từ khóa thoát được sử dụng làm mã định danh là văn bản của từ khóa hợp lý; đó là tên của số nhận dạng.

Có các tình huống khác trong đó văn bản và văn bản giá trị có thể khác nhau; xem nếu bạn có thể tìm thấy một số.

+0

Thực hiện phỏng đoán mà không kiểm tra: '\ u0061 \ u0062 \ u0063' có thể có' Văn bản' của '\ u0061 \ u0062 \ u0063' và' Giá trị' của 'abc'. – Brian

+0

Số chữ là một khả năng khác: '1.2f'; Văn bản là '1.2f', ValueText là' 1.2'. – InBetween

Các vấn đề liên quan