在Visual Studio 2010 SDK中,有SnapshotSpans和VirtualSnapshotSpans。根据MSDN,差异是虚拟跨度具有虚拟空间,其他则没有。

虚拟空间到底是什么?

以供引用:
http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.text.virtualsnapshotspan.aspx

最佳答案

您可以在此处找到说明:

http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.text.virtualsnapshotpoint%28v=vs.100%29.aspx



即使禁用了“工具”->“选项”->“文本编辑器”->“所有语言”->“常规”下的“启用虚拟空间”选项,在编写缩进的文本或代码时也可以插入虚拟空间。

如果在缩进行的末尾键入Enter,Visual Studio将在新行的开头添加虚拟空间。这些空间是“虚拟的”,因为用户尚未键入它们,并且除非您在虚拟空间之后输入某些内容,否则它们不会保存在文件中。

这会影响插入符号的位置:
在缩进行的末尾按Enter键后,CaretPosition的“BufferPosition”-和“VirtualBufferPosition”-属性将有所不同。
BufferPosition指向新行中的第0列,而VirtualBufferPosition指向可视化插入符号的位置。

关于c# - 什么是Visual Studio SDK中的VirtualSnapshotSpan中的虚拟空间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11615806/

10-15 15:38