ReadLineメソッドではCR/LF/CRLFのいずれかを改行として扱います。 リダイレクトパイプで接続された標準入力から読み込める文字列がなくなった場合や、コンソールアプリケーションにおいてCTRL+Z(LinuxではCTRL+D)によって入力を中断した場合、ReadLineメソッドはnull/Nothingを返します。

Console.ReadLineメソッドで標準入力から読み込める内容がなくなるまで読み込み、読み込んだ内容に行番号を付けて標準出力に書き込む
Imports System

Class Sample
  Shared Sub Main()
    Dim lineNumber As  Integer = 0

    While True ' 無限ループ
      ' 標準入力から一行読み込む
      Dim line As String = Console.ReadLine()

      If line Is Nothing Then
        ' 読み込める文字列が無くなった
        Exit While
      Else
        ' 読み込んだ文字列に行番号を付けて標準出力に書き込む
        lineNumber += 1
        Console.WriteLine("{0}: {1}", lineNumber, line)
      End If
    End While
  End Sub
End Class
キー入力を使った場合の実行例
>sample.exe
line1
1: line1
line2
2: line2
line3
3: line3
^Z
パイプを使った場合の実行例
>type sample.txt
line1
line2
line3

>type sample.txt | sample.exe
1: line1
2: line2
3: line3

コンソールアプリケーションではCTRL+Cを押下することでアプリケーションが中断します。 CTRL+Cが押下されたときの動作を変更したい場合は、Console.CancelKeyPressイベントにイベントハンドラを設定することで動作を定義することができます。

コマンドラインでのリダイレクト・パイプと標準入出力との接続についてはMS-DOSコマンドプロンプトTips §.パイプとリダイレクトを参照してください。