Module Module1 Public Class Fraction Private numerator As Integer Private denominator As Integer 'Create a fraction by passing in the numerator 'and denominator Public Sub New(ByVal numerator As Integer, ByVal denominator As Integer) Me.numerator = numerator Me.denominator = denominator End Sub 'Overloaded operator- takes two fractions 'and returns their sum Public Shared Operator -(ByVal lhs As Fraction, ByVal rhs As Fraction) As Fraction Dim firstProduct As Integer = 0 Dim secondProduct As Integer = 0 'Like fractions (shared denominator) can be added 'by adding thier numerators If (lhs.denominator = rhs.denominator) Then Return New Fraction(lhs.numerator - rhs.numerator, lhs.denominator) End If 'Simplistic solution for unlike fractions firstProduct = (lhs.numerator * rhs.denominator) - (rhs.numerator * lhs.denominator) secondProduct = lhs.denominator * rhs.denominator Return New Fraction(firstProduct, secondProduct) End Operator 'Return a string representation of the fraction Public Overrides Function ToString() As String Dim s As String = numerator.ToString() + "/" + denominator.ToString() Return s End Function End Class Public Class Tester Public Sub Run() Dim f1 As Fraction = New Fraction(1, 2) Console.WriteLine("f1: {0}", f1.ToString()) Dim f2 As Fraction = New Fraction(1, 6) Console.WriteLine("f2: {0}", f2.ToString()) Dim f3 As Fraction = f1 - f2 Console.WriteLine("f1 - f2 = f3: {0}", f3.ToString()) End Sub End Class Sub Main() Dim t = New Tester() t.Run() Console.ReadLine() End Sub End Module