CodeClass.IsCodeType プロパティ

更新 : 2007 年 11 月

このオブジェクトから CodeType オブジェクトを取得できるかどうかを示す値を取得します。

名前空間 :  EnvDTE
アセンブリ :  EnvDTE (EnvDTE.dll 内)

構文

'宣言
ReadOnly Property IsCodeType As Boolean
'使用
Dim instance As CodeClass
Dim value As Boolean

value = instance.IsCodeType
bool IsCodeType { get; }
property bool IsCodeType {
    bool get ();
}
function get IsCodeType () : boolean

プロパティ値

型 : System.Boolean

CodeType オブジェクトを取得できる場合は true を示し、それ以外の場合は false を示すブール値。

解説

コード要素がコード型かどうかを返します。その場合は、インターフェイスを照会したり CodeType オブジェクトにキャストしたりできます。Kind が、vsCMElementClassvsCMElementInterfacevsCMElementDelegatevsCMElementStruct、または vsCMElementEnum の場合がこれに当たります。

メモ :

特定の種類の編集を行うと、クラス、構造体、関数、属性、デリゲートなどのコード モデル要素が非確定的な値になる場合があります。つまり、これらの要素の値は、常に同じ値になるとは限りません。詳細については、「コード モデルを使用したコードの調査 (Visual Basic)」で、コード モデル要素値を変更する方法についての説明を参照してください。

Public Sub CodeClassExample(ByVal dte As DTE2) 
    ' Before running this example, open a code document from a
    ' project and place the insertion point inside a class definition
    Try
        Dim objTextSel As TextSelection
        Dim objCodeCls As CodeClass
        Dim objCodeType As CodeType
        Dim objCMElem As vsCMElement
        objTextSel = CType(dte.ActiveDocument.Selection, TextSelection)
        objCodeCls = CType(objTextSel.ActivePoint.CodeElement(vsCMElement.vsCMElementClass), CodeClass)
        ' Add DocComment to CodeClass objCodeClass.
        objCodeCls.DocComment = "<DOC>DocComment for the CodeClass object</DOC>"
        MessageBox.Show(objCodeCls.DocComment)
        ' Test if a CodeType object is obtainable from the CodeClass
        If objCodeCls.IsCodeType Then
            ' then we can cast the CodeClass to a CodeType.
            objCodeType = CType(objCodeCls, CodeType)
        Else
            ' The CodeClass object is not a CodeType but is
            ' some Kind of element.
            objCMElem = objCodeCls.Kind
        End If
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub
public void CodeClassExample(DTE2 dte)
{ 
   // Before running this example, open a code document from a
   // project and place the insertion point inside a class definition
   try
   {
      TextSelection objTextSel;
      CodeClass objCodeCls;
      CodeType objCodeType;
      vsCMElement objCMElem;
      objTextSel = (TextSelection)dte.ActiveDocument.Selection;
      objCodeCls = (CodeClass)objTextSel.ActivePoint.get_CodeElement(vsCMElement.vsCMElementClass);
      // Add DocComment to CodeClass objCodeClass.
      objCodeCls.DocComment = "<DOC>DocComment for the CodeClass object</DOC>";
      MessageBox.Show(objCodeCls.DocComment);
      // Test if a CodeType object is obtainable from the CodeClass
      if (objCodeCls.IsCodeType)
      { // then we can cast the CodeClass to a CodeType.
         objCodeType = (CodeType)objCodeCls;
      }
      else // The CodeClass object is not a CodeType but is
      {    // some Kind of element.
         objCMElem = objCodeCls.Kind;
      }
   }
   catch (Exception ex)
   { 
      MessageBox.Show(ex.Message);
   }
}

アクセス許可

  • 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

参照

CodeClass インターフェイス

CodeClass メンバ

EnvDTE 名前空間

その他の技術情報

方法 : オートメーション オブジェクト モデルのコード例をコンパイルおよび実行する

コード モデルを使用したコードの調査 (Visual Basic)

コード モデルを使用したコードの調査 (Visual C#)