DirectCast( ... , ... ): ben 13 caratteri e due shift! ;-)

Sempre per la serie "la pigrizia nello schiacciare i tasti è tanta" ho "investito" 3 minuti per creare questa macro per VB (e C#, anche se lì i caratteri sono 2... ) che, selezionato il nome dell'oggetto, aggiunge il codice che scrive il DirectCast verso il tipo desiderato. Aggiungendo un bel pulsantino sulla barra degli strumenti il tutto sembra essere sufficientemente comodo.

Potrebbe sembrare totalmente inutile, ma forse centra il fatto che avendo scelto di settare Option Strict On su un vecchio progetto in VB.NET la task list si è accesa come un albero di natale...  
Meno male che esiste: Opzioni -> Progetti -> Impostazioni predefinite di Visual Basic -> Option Strict: On (messaggio subliminare...)

    Sub WriteDirectcast()
        Dim typeName As String = String.Empty
        Dim junk As String
        Dim startpoint, endpoint As EditPoint

        With DTE.ActiveDocument.Selection
            startpoint = .TopPoint.CreateEditPoint()
            endpoint = .BottomPoint.CreateEditPoint
        End With

        If startpoint.EqualTo(endpoint) Then
            MsgBox("Select first the object name to cast", MsgBoxStyle.Critical)
            Exit Sub
        End If

        typeName = InputBox("Cast to type:")

        DTE.UndoContext.Open("Insert A DirectCast")
        Try
            'ELR: ADDED Test for Languages
            If DTE.ActiveDocument.Language = "CSharp" Then
                ' C Sharp Code
                startpoint.Insert(String.Format("(({0})", typeName, vbCrLf))
                endpoint.Insert(String.Format(")", typeName))
            Else
                ' VB Code
                startpoint.Insert(String.Format("DirectCast("))
                endpoint.Insert(String.Format(", {0})", typeName))
            End If
        Finally
            DTE.UndoContext.Close()
        End Try
    End Sub

Print | posted @ venerdì 10 giugno 2005 14:54

Comments have been closed on this topic.