VB Code in C# [HILFE]

10/20/2011 15:04 °Showii#1
Hallo ich brauche einmal eue Hilfe. Ich benötige diesen Code in C#, doch wenn ich ihn in einem Converter eingebe convertiert er falsch.



VB-Code:
HTML Code:
  Public Function ReadLine(ByVal sFile As String, _
    Optional ByVal nLine As Long = 1) As String

        Dim sLines() As String
        Dim oFSO As Object
        Dim oFile As Object

        ' Fehlerbehandlung aktivieren
        On Error GoTo ErrHandler

        ' Verweis auf das FileSystemObject erstellen
        oFSO = CreateObject("Scripting.FileSystemObject")

        ' Existiert die Datei überhaupt?
        If oFSO.FileExists(sFile) Then
            ' Datei öffnen
            oFile = oFSO.OpenTextFile(sFile)

            ' Alles lesen und in Array zerlegen
            sLines = Split(oFile.ReadAll, vbCrLf)

            ' Datei schließen
            oFile.Close()

            Select Case Math.Sign(nLine)
                ' (nLine > 0)
                Case 1
                    ' n-te Zeile von vorne beginnend
                    ReadLine = sLines(nLine - 1)

                    ' (nLine < 0)
                Case -1
                    ' n-te Zeile von hinten beginnend
                    ReadLine = sLines(UBound(sLines) + nLine + 1)
            End Select
        End If

ErrHandler:
        ' Objekte zerstören
        oFile = Nothing
        oFSO = Nothing
    End Function

C# Code nach Converter:
HTML Code:
public string ReadLine(string sFile, long nLine = 1)
{
	string functionReturnValue = null;

	string[] sLines = null;
	object oFSO = null;
	object oFile = null;

	// Fehlerbehandlung aktivieren
	 // ERROR: Not supported in C#: OnErrorStatement


	// Verweis auf das FileSystemObject erstellen
	oFSO = Interaction.CreateObject("Scripting.FileSystemObject");

	// Existiert die Datei überhaupt?
	if (oFSO.FileExists(sFile)) {
		// Datei öffnen
		oFile = oFSO.OpenTextFile(sFile);

		// Alles lesen und in Array zerlegen
		sLines = Strings.Split(oFile.ReadAll, Constants.vbCrLf);

		// Datei schließen
		oFile.Close();

		switch (Math.Sign(nLine)) {
			// (nLine > 0)
			case 1:
				// n-te Zeile von vorne beginnend
				functionReturnValue = sLines[nLine - 1];

				break;
			// (nLine < 0)
			case -1:
				// n-te Zeile von hinten beginnend
				functionReturnValue = sLines[Information.UBound(sLines) + nLine + 1];
				break;
		}
	}
	ErrHandler:

	// Objekte zerstören
	oFile = null;
	oFSO = null;
	return functionReturnValue;
}
vielen Dank im Vorraus.

mfg. Showii
10/20/2011 17:35 Kraizy​#2
Nimm doch einfach einen StreamReader. Und entferne das Goto.