Seguimos con Visual Basic .NET, en este caso un programilla en el que el usuario da una base y una altura y según lo que elija se calcula el área de un triángulo o el perímetro de un rectángulo. Aquí se ve un pantallazo:
 
 
Vamos, no es nada del otro jueves que digamos.
 
La clase Triángulo
 
Esta es una clase que representa un triángulo y tiene un método para calcular el área
 
Public Class Triangulo
    Private _base As Double
    Private _altura As Double
 
    Public Property base As Double
        Get
            Return _base
        End Get
        Set(ByVal value As Double)
            _base = value
        End Set
    End Property
 
    Public Property altura As Double
        Get
            Return _altura
        End Get
        Set(ByVal value As Double)
            _altura = value
        End Set
    End Property
 
    '''
    ''' Constructor de la clase
    '''
    '''
    '''
    '''
    Public Sub New(ByVal base As Double, ByVal altura As Double)
        Me.base = base
        Me.altura = altura
 
    End Sub
 
    '''
    ''' Area, calcula el área de un triángulo
    '''
    ''' Double
    '''
    Public Function Area() As Double
        Return ((_base * _altura) / 2)
    End Function
 
End Class
 
La clase Rectángulo
 
Esta es una clase que representa un rectángulo y tiene un método para calcular el área y el perímetro
 
Public Class Rectangulo
    Private _base As Double
    Private _altura As Double
 
    Public Property base As Double
        Get
            Return _base
        End Get
        Set(ByVal value As Double)
            _base = value
        End Set
    End Property
 
    Public Property altura As Double
        Get
            Return _altura
        End Get
        Set(ByVal value As Double)
            _altura = value
        End Set
    End Property
 
    Public Sub New(ByVal base As Double, ByVal altura As Double)
        Me.base = base
        Me.altura = altura
 
    End Sub
 
    '''
    ''' Area
    '''
    ''' Double
    '''
    Public Function Area() As Double
        Return _base * _altura
    End Function
 
    '''
    ''' Perimetro
    '''
    ''' Double
    '''
    Public Function Perimetro() As Double
        Return _base * 2 + _altura * 2
    End Function
End Class
 
 
El interfaz
 
El interefaz de usuario no es más que una clase Form que básicamente atiende los eventos de los botones y los radiobuttons.
 
Public Class Form1
 
    Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbRectangulo.CheckedChanged
        GroupBox1.Text = "Rectángulo"
        lblArea.Visible = False
        lblTxtArea.Visible = False
        lblTxtArea.Text = ""
 
        txtBase.Focus()
        lblPerimetro.Visible = True
        lblTxtPerimetro.Visible = True
 
    End Sub
 
    Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbTriangulo.CheckedChanged
        GroupBox1.Text = "Triángulo"
        lblPerimetro.Visible = False
        lblTxtPerimetro.Visible = False
        lblTxtPerimetro.Text = ""
 
        lblArea.Visible = True
        lblTxtArea.Visible = True
        txtAltura.Focus()
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.Close()
 
    End Sub
 
    Private Sub btnResultados_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnResultados.Click
        Dim errores As Boolean = False
        Dim base As Double = 0
        Dim altura As Double = 0
 
 
        If Not IsNumeric(txtAltura.Text) Then
            errores = True
            txtAltura.Focus()
        End If
 
        If Not IsNumeric(txtBase.Text) Then
            errores = True
            txtBase.Focus()
        End If
 
        If errores Then
            MsgBox("Error datos no numéricos")
        Else
 
            base = Double.Parse(txtBase.Text)
            altura = Double.Parse(txtAltura.Text)
 
            If rbRectangulo.Checked Then
                Dim miRectangulo As Rectangulo = New Rectangulo(base, altura)
                lblTxtPerimetro.Text = miRectangulo.Perimetro
            Else
                Dim miTriangulo As Triangulo = New Triangulo(base, altura)
                lblTxtArea.Text = miTriangulo.Area
            End If
        End If
 
    End Sub
End Class