AddThis Social Bookmark Button

Print

Refactoring Support for Visual Basic 2005
Pages: 1, 2, 3, 4

Inline Temp

This option is the inverse of the previous option. Instead of using a variable to replace a lengthy expression, it now replaces all of the variables with the original expression. Consider the following code segment:


Dim lSizeWidth As Integer = Me.Size.Width
If lSizeWidth > 200 Then
  ...
End If

If lSizeWidth > 100 Then
  ...
End If

If you right-click on lSizeWidth and select Refactor -> Inline Temp (see Figure 15), it will now replace all occurrences of the lSizeWidth variable with Me.Size.Width.

figure 15
Figure 15. Replacing a variable with its original expression

Your code will now become:


If Me.Size.Width > 200 Then
  ...
End If

If Me.Size.Width > 100 Then
  ...
End If

There's one caveat, though. If you have a statement that performs some changes to the lSizeWidth variable (see the code below), then Refactor will not be able to perform the Inline Temp refactoring for you:


Dim lSizeWidth As Integer = Me.Size.Width
If lSizeWidth > 200 Then
  ...
End If

lSizeWidth -= 100
If lSizeWidth > 100 Then
  ...
End If

Extract Property

Consider the following block of code, which consumes a web service:


Dim result() As StockWS.Quote = _
  My.WebServices.StockQuotes.GetStockQuotes("MSFT")
MsgBox(result(0).StockQuote)

You may reference the web service in a number of places in your application. In such cases, it may be better to extract the above logic and expose it as a property so that other parts of your code can simply access the property and you will not need to write code to consume the web service again. To do so, highlight the web service code (see Figure 16), right-click, and select Refactor -> Extract Property.

figure 16
Figure 16. Extracting a block of code as a property

The web service code would now be exposed as a property and the original code would be replaced with a property call:


Private ReadOnly Property MyProperty() As StockWS.Quote()
  Get
    Return My.WebServices.StockQuotes.GetStockQuotes("MSFT")
  End Get
End Property
...
...
Dim result() As StockWS.Quote = MyProperty
MsgBox(result(0).StockQuote)

Create Overload

You can create overloaded methods easily in your class by right-clicking on a method name and then selecting Refactor -> Create Overload (see Figure 17).

figure 17
Figure 17. Creating an overloaded method

An overloaded method is created and you can use the various keyboard options (see Figure 18) to include/exclude parameters.

figure 18
Figure 18. Modifying the overloaded method

Pages: 1, 2, 3, 4

Next Pagearrow