枚举函数的CodeElements [英] enumerate CodeElements of function

查看:61
本文介绍了枚举函数的CodeElements的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好帮助初学者。

如何在函数体内枚举CodeElement?

谢谢

我想要尝试编写一个可以在函数内编写枚举变量的Select Case的插件。

我在Visual Studio 2010中尝试使用此代码:

Hello guys help for a beginner.
How to enumerate CodeElement inside the body of a function?
thank you
I want to try to write an addin that can write a Select Case of an enumerated variable inside a function.
I tried with this code with Visual Studio 2010 :

Imports EnvDTE
  Imports EnvDTE80
  Imports System.Collections.Generic
  Imports System.Text
  Public Class Form1
    Private dte As DTE2 = System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.10.0")
    Dim lElements As New List(Of String)
    Public Enum Sizes
      Small
      Medium
      Large
      ExtraLarge
    End Enum
    Private Sub Test(mysize As Sizes)
      Dim prova As Sizes        'not found in FileCodeModel
      prova = Sizes.ExtraLarge   'not found in FileCodeModel
    End Sub
    Private Sub RecursiveLoop(cdElements As CodeElements)
      Dim children As String
      Dim elem As CodeElement
      Try
        For Each elem In cdElements
          lElements.Add(elem.Name & vbCrLf)
          RecursiveLoop(elem.Children)
        Next
      Catch ex As Exception
        System.Windows.Forms.MessageBox.Show(ex.ToString)
      End Try
    End Sub
    Sub CodeElementsExample(ByVal dte As DTE2)
      Dim fcm As FileCodeModel = _
            dte.ActiveDocument.ProjectItem.FileCodeModel
      RecursiveLoop(fcm.CodeElements)
      Dim sBuilder As New StringBuilder
      For Each item As String In lElements
        sBuilder.Append(item)
      Next
      MsgBox(sBuilder.ToString)
    End Sub
    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
      Stop   ' open code window
      CodeElementsExample(dte)
    End Sub
  End Class

推荐答案

这篇关于枚举函数的CodeElements的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆