次の方法で共有


XML ファイルの処理 (Visual Basic)

コンパイラは、ドキュメントを生成するためにタグ付けされたコード内の各コンストラクトの ID 文字列を生成します。 (コードにタグを付ける方法については、「 XML コメント タグ」を参照してください)。ID 文字列は、コンストラクトを一意に識別します。 XML ファイルを処理するプログラムは、ID 文字列を使用して、対応する .NET Framework メタデータ/リフレクション項目を識別できます。

XML ファイルは、コードの階層的な表現ではありません。これは、各要素に対して生成された ID を持つフラット リストです。

コンパイラは、ID 文字列を生成するときに、次の規則を確認します。

  • 文字列に空白は配置されません。

  • ID 文字列の最初の部分では、識別されるメンバーの種類が識別され、1 文字の後にコロンが続きます。 次のメンバー型が使用されます。

キャラクター 説明
N 名前空間

名前空間にドキュメント コメントを追加することはできませんが、サポートされている場合は CREF 参照を作成できます。
T 型: ClassModuleInterfaceStructureEnumDelegate
F フィールド: Dim
P property: Property (既定のプロパティを含む)
エム メソッド: SubFunctionDeclareOperator
E イベント: Event
! エラー文字列

残りの文字列は、エラーに関する情報を提供します。 Visual Basic コンパイラは、解決できないリンクのエラー情報を生成します。
  • Stringの 2 番目の部分は、名前空間のルートから始まる項目の完全修飾名です。 項目の名前、その外側の型、および名前空間はピリオドで区切られます。 項目自体の名前にピリオドが含まれている場合は、番号記号 (#)に置き換えられます。 名前に直接番号記号を持つ項目がないことを前提としています。 たとえば、 String コンストラクターの完全修飾名は System.String.#ctor

  • プロパティとメソッドの場合、メソッドに引数がある場合は、かっこで囲まれた引数リストが後に続きます。 引数がない場合、かっこは存在しません。 引数はコンマで区切られます。 各引数のエンコードは、.NET Framework シグネチャでのエンコード方法に直接従います。

次のコードは、クラスとそのメンバーの ID 文字列がどのように生成されるかを示しています。

Namespace SampleNamespace

  ''' <summary>Signature is
  ''' "T:SampleNamespace.SampleClass"
  ''' </summary>
  Public Class SampleClass

    ''' <summary>Signature is
    ''' "M:SampleNamespace.SampleClass.#ctor"
    ''' </summary>
    Public Sub New()
    End Sub

    ''' <summary>Signature is
    ''' "M:SampleNamespace.SampleClass.#ctor(System.Int32)"
    ''' </summary>
    Public Sub New(ByVal i As Integer)
    End Sub

    ''' <summary>Signature is
    ''' "F:SampleNamespace.SampleClass.SampleField"
    ''' </summary>
    Public SampleField As String

    ''' <summary>Signature is
    ''' "F:SampleNamespace.SampleClass.SampleConstant"
    ''' </summary>
    Public Const SampleConstant As Integer = 42

    ''' <summary>Signature is
    ''' "M:SampleNamespace.SampleClass.SampleFunction"
    ''' </summary>
    Public Function SampleFunction() As Integer
    End Function

    ''' <summary>Signature is
    ''' "M:SampleNamespace.SampleClass.
    ''' SampleFunction(System.Int16[],System.Int32[0:,0:])"
    ''' </summary>
    Public Function SampleFunction(
        ByVal array1D() As Short,
        ByVal array2D(,) As Integer) As Integer
    End Function

    ''' <summary>Signature is
    ''' "M:SampleNamespace.SampleClass.
    ''' op_Addition(SampleNamespace.SampleClass,
    '''             SampleNamespace.SampleClass)"
    ''' </summary>
    Public Shared Operator +(
        ByVal operand1 As SampleClass,
        ByVal operand2 As SampleClass) As SampleClass

      Return Nothing
    End Operator

    ''' <summary>Signature is
    ''' "P:SampleNamespace.SampleClass.SampleProperty"
    ''' </summary>
    Public Property SampleProperty() As Integer
      Get
      End Get
      Set(ByVal value As Integer)
      End Set
    End Property

    ''' <summary>Signature is
    ''' "P:SampleNamespace.SampleClass.Item(System.String)"
    ''' </summary>
    Default Public ReadOnly Property Item(
        ByVal s As String) As Integer

      Get
      End Get
    End Property

    ''' <summary>Signature is
    ''' "T:SampleNamespace.SampleClass.NestedClass"
    ''' </summary>
    Public Class NestedClass
    End Class

    ''' <summary>Signature is
    ''' "E:SampleNamespace.SampleClass.SampleEvent(System.Int32)"
    ''' </summary>
    Public Event SampleEvent As SampleDelegate

    ''' <summary>Signature is
    ''' "T:SampleNamespace.SampleClass.SampleDelegate"
    ''' </summary>
    Public Delegate Sub SampleDelegate(ByVal i As Integer)
  End Class
End Namespace

こちらも参照ください