利用VS.NET 宏,根据私有变量生成属性定义,以加快开发速度
在编写代码时,往往需要根据定义的私有变量,生成属性定义;这一操作可以利用VS.NET宏实现,代码如下:
Sub TemporaryMacro()
Dim TS As TextSelection = DTE.ActiveDocument.Selection
Dim Insertion As String, Line As String
Dim Lines() As String = TS.Text.Split(vbNewLine) ' 针对选中部分的每一行,返回相应的属性过程
Insertion = vbNewLine
For Each Line In Lines
Insertion &= GetInsertion(Line)
Next
If (Insertion.Length > 1) Then
TS.EndOfLine()
TS.NewLine()
TS.Insert(Insertion)
End If
End Sub
Private Function GetInsertion(ByVal text As String) As String
Dim Words() As String = text.Trim.Split()
If Words.Length < 3 Then ' 该行内容不是一个合法的变量声明
Return ""
Else
Dim Insertion As String
Insertion &= vbTab & vbTab & "/// <summary>"
Insertion &= vbNewLine
Insertion &= vbTab & vbTab & "///"
Insertion &= vbNewLine
Insertion &= vbTab & vbTab & "/// </summary>" ' 如果不想要XML注释,那前面这几行可以不要
Insertion &= vbNewLine
Insertion &= vbTab & vbTab & "public " & Words(1) & " " & Words(2).TrimStart("m").TrimStart("_")..TrimEnd(";") '我的私有变量是以“m_”开始的
Insertion &= vbNewLine
Insertion &= vbTab & vbTab & "{ "
Insertion &= vbNewLine
Insertion &= vbTab & vbTab & vbTab & "get { return " & Words(2) & " }"
Insertion &= vbNewLine
Insertion &= vbTab & vbTab & vbTab & "set { " & Words(2).TrimEnd(";") & " = value;}"
Insertion &= vbNewLine
Insertion &= vbTab & vbTab & "}"
Insertion &= vbNewLine
Return Insertion
End If
End Function
将上面的代码放到VS.NET宏中,然后选中定义的私有变量,再Ctrl+Shift+P即可以根据自定义的私有变量生成属性定义。
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
将上面的代码放到VS.NET宏中,然后选中定义的私有变量,再Ctrl+Shift+P即可以根据自定义的私有变量生成属性定义。