Função não retorna um valor em todos os caminhos de código Vb.net

Sou um pouco novo em programação e estou tendo problemas para fazer esse trabalho. Eu deveria executar esse código usando um delegado, mas encontrei erro após erro. Estou usando o Vb.net. Alguém poderia me ajudar a resolver os problemas deste código?

Public Delegate Function D()
Dim Str As String = Console.ReadLine()
Sub Main()
    Dim D1 As D
    D1 = New D(AddressOf Fn1)
End Sub
Function Fn1()
    System.Console.WriteLine("Please enter the string")

    Dim revstr As String = StrReverse(Str)
    Console.WriteLine("Reverse:")
    Console.WriteLine(revstr)

    Console.WriteLine("A,mount of characters in the string:")
    Dim Count As Integer = Str.Length
    Console.WriteLine(Count)

    Console.WriteLine("Amount of words in the string:")
    Dim TempA() As String = Str.Split(" ")
    Console.WriteLine(TempA.Length & " ")
    Console.ReadKey()
End Function

Obrigado por qualquer ajuda que alguém pode dar!

questionAnswers(1)

yourAnswerToTheQuestion