5

Visual Studio 2010 SDK には、SnapshotSpans と VirtualSnapshotSpans があります。MSDN によると、違いは仮想スパンには仮想スペースがあり、もう一方にはありません。

仮想空間とは正確には何ですか?

参照用: http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.text.virtualsnapshotspan.aspx

4

1 に答える 1

6

ここで説明を見つけることができます:

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

仮想スペースは、行の長さに追加されない行末の「余分な」スペースです。Visual Studio で仮想スペースを有効または無効にすることができます。仮想空間が無効になっている場合、行末で右矢印キーを押すと、キャレットが次の行の先頭に移動します。仮想空間が有効になっている場合、行末で右矢印キーを押すと、キャレットが同じ行を前方に移動します。

[ツール] → [オプション] → [テキスト エディター] → [すべての言語] → [全般] の [仮想スペースを有効にする] オプションが無効になっていても、インデントされたテキストやコードを記述するときに仮想スペースを挿入できます。

インデントされた行の最後に Enter を入力すると、Visual Studio は新しい行の先頭に仮想スペースを追加します。これらのスペースはユーザーによって入力されていないため「仮想」であり、仮想スペースの後に何かを入力しない限りファイルに保存されません。

これはキャレットの位置に影響します。インデントされた行の最後で Enter キーを押すと、CaretPosition の「BufferPosition」プロパティと「VirtualBufferPosition」プロパティが異なります。BufferPosition は新しい行の列 0 を指し、VirtualBufferPosition はキャレットが視覚的にレンダリングされる位置を指します。

于 2012-08-03T11:11:09.660 に答える