| |
C# EckeKonsolenprogramm von VB.NET in C# umschreiben | | | Autor: Sloorg | Datum: 07.05.16 03:28 |
| Hallo zusammen!
Ich möchte mal etwas in C# reinschnuppern und da dachte ich, ich versuche mal, ein paar Programme von VB.NET in C# umzuschreiben, aber klappt nicht so ganz. Weiß jmd. vllt. wie's geht? Merci im Voraus! ;>)
OK, hier ein Programm (Aufgabe) in VB.NET:
Öffnen Sie das Projekt x und ergänzen Sie den Quelltext um folgende Variablen:
Variable vom Typ String mit dem Namen name
Variable vom Typ String mit dem Namen vorname
Variable vom Typ Integer mit dem Namen tag
Variable vom Typ Integer mit dem Namen monat
Variable vom Typ Integer mit dem Namen jahr
Ändern Sie den Quelltext, damit die Werte für die Variablen mit der Tastatur eingelesen werden können.
Lassen Sie nach erfolgter Eingabe der Werte alles im Konsolenfenster ausgeben.
in VB.NET:
Dim name as String
Dim vorname as String
Dim tag as Integer
Dim monat as Integer
Dim jahr as Integer
name = ReadLine()
vorname = ReadLine()
tag = ReadLine()
monat = ReadLine()
jahr = ReadLine()
WriteLine(vorname & " " & name & " " & tag & " " & monat & " " & jahr) in C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace x
{
class Program
{
static void Main(string[] args)
{
string name, vorname;
int tag, monat, jahr;
... ab hier klappt's dann nicht mehr.
Weiß jmd. vllt., wie man den Rest in C# umschreiben kann?
name = ReadLine()
vorname = ReadLine()
tag = ReadLine()
monat = ReadLine()
jahr = ReadLine()
WriteLine(vorname & " " & name & " " & tag & " " & monat & " " & jahr)
Schöne Grüße und vielen Dank!
Sloorg.
Beitrag wurde zuletzt am 07.05.16 um 03:30:27 editiert. | |
Re: Konsolenprogramm von VB.NET in C# umschreiben | | | Autor: Sloorg | Datum: 07.05.16 03:52 |
| // Von einem VB.NET to C#-Converter bekam ich dieses Ergebnis (geht aber nicht; bekommt man Fehlermeldungen):
name = ReadLine();
vorname = ReadLine();
tag = ReadLine();
monat = ReadLine();
jahr = ReadLine();
WriteLine((vorname + (" "
+ (name + (" "
+ (tag + (" "
+ (monat + (" " + jahr)))))))));
Beitrag wurde zuletzt am 07.05.16 um 03:54:59 editiert. | |
Beispiel: Konsolen-Anwendung (VB.NET und C#) | | | Autor: Manfred X | Datum: 07.05.16 06:15 |
| Hallo!
Dir fehlen elementare Kenntnisse!
Zunächst ein Beispiel als VB-Variante:
Public Class MainClass
Public Shared Sub main()
Dim name As String
Dim vorname As String
Dim tag As Integer
Dim monat As Integer
Dim jahr As Integer
Dim dt As Date
Console.WriteLine("Name eingeben: ")
name = Console.ReadLine()
Console.WriteLine("Vorname eingeben: ")
vorname = Console.ReadLine()
tag = InputNumber("Tag eingeben:", 1, 31)
monat = InputNumber("Monat eingeben:", 1, 12)
jahr = InputNumber("Jahr eingeben:", 1950, 2020)
Try
dt = New Date(jahr, monat, tag)
Console.WriteLine(vorname & " " & name & " " & _
tag.ToString & "." & monat.ToString & "." & jahr.ToString)
Catch ex As Exception
Console.WriteLine("Unzulässiges Datum")
End Try
Console.ReadLine()
End Sub
Private Shared Function InputNumber(ByVal label As String, _
min As Integer, max As Integer) As Integer
Dim ok As Boolean, number As Integer
Do
Console.WriteLine(label)
ok = Integer.TryParse(Console.ReadLine(), number) _
AndAlso (min <= number And max >= number)
Loop While Not ok
Return number
End Function
End Class Entsprechend die C#-Variante:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string name;
string vorname;
int tag;
int monat;
int jahr;
DateTime dt;
Console.WriteLine("Name eingeben: ");
name = Console.ReadLine();
Console.WriteLine("Vorname eingeben: ");
vorname = Console.ReadLine();
tag = InputNumber("Tag eingeben:", 1, 31);
monat = InputNumber("Monat eingeben:", 1, 12);
jahr = InputNumber("Jahr eingeben:", 1950, 2020);
try {
dt = new DateTime(jahr, monat, tag);
Console.WriteLine(vorname + " "
+ name + ' '
+ tag.ToString() + '.'
+ monat.ToString() + '.'
+ jahr.ToString());
}
catch
{
Console.WriteLine("Unzulaessiges Datum");
}
Console.ReadLine();
}
private static int InputNumber(string label, int min, int max)
{
bool ok; int number;
ok = false;
number = -1;
while (!ok)
{
Console.WriteLine(label);
ok = Int32.TryParse(Console.ReadLine(), out number)
&& ((min <= number)
&& (max >= number));
}
return number;
}
}
} | |
Re: Beispiel: Konsolen-Anwendung (VB.NET und C#) | | | Autor: Sloorg | Datum: 07.05.16 07:09 |
| Wooow - mit 3 os!
Hallo Manfred,
da bin ich ja echt überrascht ... diese Code-Beispiele muss ich gleich mal studieren!!!
Scheinst ja ein echter Pro zu sein - und das noch in mehreren Sprachen. Cool! Ich würd's halt gern mal lernen, aber is wohl ein ziemlich weiter Weg, hm?
Hast du vllt. ein paar Tips, wie ich mich verbessern kann?
Auf jeden Fall möcht ich mich auch mal mit C# befassen, wenn das schon die .NET-Hauptsprache ist, wie ich gelesen hab. Is mir auch einiges bekannt, hatte mal nen Kurs in C - aber ewig her.
Auf jeden Fall merci! :thankful:
Salut und 'n schönes WE!
Sloorg!
PS: Hättest du bitte vllt. noch ein paar erklärende Worte dazu? Wär cool! ;>)
Beitrag wurde zuletzt am 07.05.16 um 07:24:10 editiert. | |
Re: Beispiel: Konsolen-Anwendung (VB.NET und C#) | | | Autor: Manfred X | Datum: 07.05.16 14:31 |
| Deine VB-Codezeilen in C# zu übersetzen ist trivial.
Was soll da erklärt werden?
Ich habe auf Basis dieser Codezeilen ein winziges Konsolenprogramm
erstellt und in C# übersetzt.
Übrigens hat "C#" nicht mit der "klassischen" Programmiersprache "C"
zu tun; lediglich manche Syntaxeigenarten sind übernommen worden.
Prinzipiell werden Benutzereingaben (Zeichenfolgen) in Programmen
daraufhin überprüft, ob sie den Anforderungen entsprechen (Datentyp,
Format, Ausprägung, Kompatibilität mit aktueller Datensituation usw.)
Dafür stellt das Framework geeignete Methoden zur Verfügung.
Ein Datum würde man direkt formatiert abfragen:
"Geben Sie ein Datum ein ("tt.mm.jj"):"
Die eingegebene Zeichenfolge kann man mit "Date.Tryparse" auf
Gültigkeit prüfen und zugleich konvertieren.
Wenn man für die Ausgabe auf dem Display eine Zeichenfolge aus
verschiedenen Variablen-Werten zusammenstellen will, ist eine
Zeichenfolgenkonvertierung (z.B. "ToString"-Methode) erforderlich.
Für das Kombinieren dieser Zeichenfolgen steht im Framework
die "Stringbuilder"-Klasse zur Verfügung. Es gibt zudem Formatierungs-
Methoden (z.B. für numerische Werte oder Datums-Angaben). | |
Re: Beispiel: Konsolen-Anwendung (VB.NET und C#) | | | Autor: Sloorg | Datum: 08.05.16 00:46 |
| OK! Wie ich sehe, ähneln sich einige Dinge in VB und C#, wie z. B. Console.WriteLine etc. und es gibt auch eine Try - Catch-Fehlerbehandlungsroutine.
Was mir gerade einfällt: In VB kann man doch die Imports-Anweisung verwenden (Imports System.Console) um Tipparbeit zu sparen - gibt es da in C# etwas Ähnliches? Hab's mit "using" versucht, aber das geht leider nicht... | |
Re: Beispiel: Konsolen-Anwendung (VB.NET und C#) | | | Autor: Sloorg | Datum: 09.05.16 16:35 |
| Ahso, ok. Merci für die Info und die Einsteigerhilfe. Jetzt kann ich anhand deines Beispielprogramms mal etwas üben und andere kl. Übungsprogramme erstellen.
Salut, Sloorg. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevOutBar 4.0
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere Infos
|