PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Änfängerprobleme mit mono



Nemesis
24.04.2005, 11:41
Hi,
ich habe beschlossen C# zu lernen. Empfohlen wurde mir mono als ide.
Installiert habe ich es mit einiger mühe da es ja nur unter unstable gibt.

Nun aber noch ein Problem, wenn ich ein kleines Programm wir z.b.:


using System;

namespace Hallo
{
class class1
{
[STAThread]
static void Main(string[] args)
{
string aName;
aName = Console.ReadLine();
Console.WriteLine("Hallo {0}", aName );
Console.ReadLine();
}
}
}


dann sollte er ja normal warten bis ich "etwas" eingegeben habe um dann "Hallo etwas" auszugeben, aber das tut er nicht.

gibt es eigentlich noch mehr IDE für c# die ihr empfehlen könnt?
was ist mit kdevelop, emacs oder xemacs?

thx

pinky
24.04.2005, 13:03
Hi,
ich habe beschlossen C# zu lernen. Empfohlen wurde mir mono als ide.
Installiert habe ich es mit einiger mühe da es ja nur unter unstable gibt.


Mono ist keine IDE, sondern eine Plattform die dir neben C#, Kompiler und der CLI noch eine Menge andere nützliche libs zur Verfügung stellt.
Ich nehme mal an du meinst monodevelop, oder?



Nun aber noch ein Problem, wenn ich ein kleines Programm wir z.b.:


using System;

namespace Hallo
{
class class1
{
[STAThread]
static void Main(string[] args)
{
string aName;
aName = Console.ReadLine();
Console.WriteLine("Hallo {0}", aName );
Console.ReadLine();
}
}
}


dann sollte er ja normal warten bis ich "etwas" eingegeben habe um dann "Hallo etwas" auszugeben, aber das tut er nicht.


sollte er und macht er bei mir auch...
Du kannst dir [STAThread] übrigens sparen, dass ist eigentlich ziemlich MS spezifisch und hat etwas mit COM zu tun.



gibt es eigentlich noch mehr IDE für c# die ihr empfehlen könnt?
was ist mit kdevelop, emacs oder xemacs?


Emacs wäre eine sehr gute Wahl, dass ist die beste IDE unabhängig von der Programmiersprache ;)

Nemesis
24.04.2005, 14:28
ups, joa, monodevelop, meinte ich ;-)
hm, wie teste ich es in monodevelop am besten? ich bin auf "run" gegangen, dann bringt er mir aber im "application output" nur "Hallo", er sollte aber doch eine eingabe abwarten und nach dieser dann "Hallo {Eingabe}" ausgeben.

Kann man mir Emacs auch das programm ablaufen lassen, und hebt emacs auch codestellen farbig hervor?

EDIT: Sorry, beim schreiben der Antwort bin ich ausversehen auf "edit" anstatt auf "zitieren" gekommen.

pinky
24.04.2005, 17:55
Kann man mir Emacs auch das programm ablaufen lassen, und hebt emacs auch codestellen farbig hervor?


mit dem richtigen cs-mode macht emacs auch syntax-highlighting ;)
Kompilieren und ausführen sollte mit der richtigen Konfiguration auch aus dem emacs heraus gehen, wobei ich beim programmieren eigentlich immer neben dem emacs noch ein paar Terminals offen habe und darin alles mache.

Das würde ich dir auch mal bei deinem Programm empfehlen. Einfach mal in einem Terminal kompilieren und ausführen.

Zum emacs:
Ich habe dir mal meine cs-mode.el angehängt. Um den mode zu laden mußt du noch das in deine ~/.emacs eintragen:



;; C# Mode
(add-to-list 'load-path "~/.emacsrc") ;; Verzeichnis indem du die cs-mode.el speicherst.
(autoload 'csharp-mode "csharp-mode"
"Major mode for editing C# code." t)
(setq auto-mode-alist (cons '( "\\.cs\\'" . csharp-mode ) auto-mode-alist ))

Nemesis
24.04.2005, 18:16
hm, was muss ich damit machen, und für was is es gut?
sry aber ich versteh da nur banhof ;-)
ich weiß nichma wie ich das programm das ich geschrieben habe in eine datei bringe die ich nacher ausführen kann ^^

pinky
24.04.2005, 18:28
hm, was muss ich damit machen, und für was is es gut?
sry aber ich versteh da nur banhof ;-)


das mit dem emacs-cs-mode dauert noch etwas. Ich habe gerade Probleme eine Datei anzuhängen... :(



ich weiß nichma wie ich das programm das ich geschrieben habe in eine datei bringe die ich nacher ausführen kann ^^

Das hört sich nicht gut an... Ein Grund warum ich nicht gut auf große IDEs zu sprechen bin. Da lernt man, dass man alles irgendwie zusammenklicken kann und mit dem Klick auf Button X läuft das Programm. Unterschiede wie Quelltext, GUI, Kompiler und Linker werden da total vergessen. Das ist kein Problem wenn man weiß was man macht, verursacht aber gerade bei Einsteigern immer wieder Verständnisprobleme. Aber das ist ein Thema für sich... ;)

Zu deinem Programm:
Du tippst das Programm einfach mal in einen normalen Texteditor oder kopierst es vom Forum oder von monodevelop.
Dann speicherst du es als hallo.cs.
Jetzt wechselst du in die Konsole und kompilierst es:
mcs hallo.cs
Jetzt solltest du eine hallo.exe haben die du mit ./hallo.exe ausführen kannst.

Nemesis
24.04.2005, 18:30
ahh, es werde licht :-)

das werd ich gleich ausprobieren ;-)

thx

Nemesis
24.04.2005, 18:51
cool, das funktioniert :-))
dann brauch ich ja garkein ide, dann kann man das ja mit dem editor schreiben :-)

pinky
24.04.2005, 20:05
dann brauch ich ja garkein ide, dann kann man das ja mit dem editor schreiben :-)

ja, ist aber eigentlich bei jeder Programmiersprache so ;)

Wenn dich emacs noch interessiert, hier ist jetzt der cs-mode (Datei mußt du natürlich entpacken), wie man ihn einbindet habe ich ja schon oben beschrieben.

Nemesis
24.04.2005, 21:34
hm, du hast geschrieben, dass ich den code in meine .emacs eintragen soll. aber da gibts in meinem home ordner nur ein verz. das sich .emacs.d nennt, und darin ist eines das sich auto-save-list nennt. muss ich einfach in ersteres die datei kopieren?

p.s.: ich hab emacs und xemacs drauf

pinky
24.04.2005, 21:47
Du entpackst die datei einfach in ein Verzeichnis deiner Wahl, ist im Prinzip egal wo hin, ich habe mir dafür das Verzeichnis .emacsrc angelegt.

Danach ergänzt du deine ~/.emacs (wenn es die noch nicht gibt, dann erstellst du sie einfach):



;; C# Mode
(add-to-list 'load-path "~/.emacsrc") ;; Verzeichnis indem du die cs-mode.el speicherst.
(autoload 'csharp-mode "csharp-mode"
"Major mode for editing C# code." t)
(setq auto-mode-alist (cons '( "\\.cs\\'" . csharp-mode ) auto-mode-alist ))


Beachte, dass du in der zweiten Zeile evtl. den Pfad anpassen mußt, wenn du die Datei nicht nach ~/.emacsrc entpackst.
Jetzt wird automatisch der c#-mode geladen wenn du eine .cs Datei öffnest.

Nemesis
25.04.2005, 12:16
ok, habs :-)

thx