|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 18.02.2003, 23:02 Titel: C Sharp |
|
|
Hat schon mal jemand was mit C# programmiert?
Also ich kann nur sagen, das das eine verdammt gute Sprache ist - Wesentlich besser durchdacht als Java und auch viel schneller. Läüft halt leider "nur" auf Windows, obwohl findige Linuxer die Klassenbibliothek so nach und nach übersetzen, so das man solche Programme bald auch in Linux einsetzen kann...
Wie sind eure Erfahrungen mit dieser Sprache?
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 19.02.2003, 15:39 Titel: |
|
|
Hab noch mir die noch nie angekuckt, geschweige denn damit programmiert
Wo gibts denn da "Umsteiger" Tutorials? Wenn die so gut is wie du behauptest, würd ich sie mir gerne mal angucken! |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 19.02.2003, 16:04 Titel: |
|
|
Also, wenn du C++ kannst brauchst du kein Umsteigertutorial. Ich habe es mal kurz angeschaut. Was am beeindruckensten ist, ist wie schnell man UIs usw. bauen kann. Warum es jetzt so viel schneller sein soll als Java sehe ich aber nicht.
Christian |
|
Nach oben |
|
|
Sören JLI Master Trainee
Anmeldedatum: 26.07.2002 Beiträge: 647 Wohnort: Bonn Medaillen: Keine
|
Verfasst am: 19.02.2003, 17:53 Titel: |
|
|
Hi,
ein paar Infos gibt es auf http://www.guidetocsharp.de
Scheint recht gut zu funktionieren, aber ich persönlich lege sehr viel Wert darauf, das meine Seiten auch auf MAC richtig funktionieren. |
|
Nach oben |
|
|
Jörg JLI MVP
Anmeldedatum: 19.07.2002 Beiträge: 182 Wohnort: Siegen/NRW Medaillen: Keine
|
Verfasst am: 19.02.2003, 20:10 Titel: |
|
|
C#, find ich, ist an und für sich schon ganz ok, wir programmieren damit im Infounterricht. Wie AFE schon sagte kann man damit sehr schnell UIs machen.
Was mich jedoch etwas stört ist der Syntax, den ich manchmal bischen umständlich finde (bin C++-geschädigt ), z.B., dass man vor jedes Klassenmember private, public oder protected schreiben muss.
Schade auch, dass man keine Referenzen als Rückgabewert einsetzen kann.
Was ich auch vermisse sind die schönen Arrays (Strings) aus C/C++, wo man so schön mit Pointerarithmetik drin rummachen und ganze Speicherbereiche kopieren kann (gibt's sowas bei C# vielleicht auch?).
Bei C#-Strings hab ich immer angst um meine Performance und das arbeiten damit ist mir zu umständlich.
Was ich bei C# aber interessant finde sind die Properties, wodurch man die Get/Set-Memberfunktionen ersetzen kann.
Mehrfachvererbung setze ich auch schon mal gerne ein, was ja bei C# (soviel ich weiß) nicht mehr geht.
Im moment gibt es ja auch noch keine Templates in C#, ich glaube aber gehört zu haben, dass die irgendwann noch kommen sollen.
Ich werde wohl bei C++ bleiben (auch wenn mein Info-Lehrer meint, das sei schon längst tot ), denn dort hab ich mehr Kontrolle über mein Programm und es gibt ja auch Containerklassen in der STL, und nicht zuletzt die MFC, womit man, wenn man sich etwas damit
beschäftigt hat, auch schnelle und flexible UIs erstellen kann.
Für ein ernsthaftes Spieleprojekt, wo es sehr auf Performance ankommt, werde ich wohl kein C# benutzen, jedoch ist die Sprache für normale Windows-Anwendungen schon sehr interessant.
Einen Java-C#-Vergleich kann ich leider nicht anstellen, weil ich noch nichts mit Java gemacht habe (außer JavaScript).
Jörg _________________ www.messiahzone.de.vu |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 19.02.2003, 20:18 Titel: |
|
|
Ich finde auch sowas wie Garbage Collection grausam. Im Spielentwicklungsbereich kommt C# aber sehr stark beim Erstellen von Editoren usw. zum Einsatz. Ich finde C++ auch schöner, befürchte aber, dass das ein bischen was mit Nostalgie, Angst vor Neuen usw. zu tun hat. Ich hoffe dein Informatiklehrer täuscht sich !
Christian |
|
Nach oben |
|
|
Jörg JLI MVP
Anmeldedatum: 19.07.2002 Beiträge: 182 Wohnort: Siegen/NRW Medaillen: Keine
|
Verfasst am: 19.02.2003, 20:29 Titel: |
|
|
Mein Infolehrer ist ein ziemlicher Microsoft-Freak, deshalb gilt für ihn auch Microsoftprodukt = toll (ich nehm den in der Hinsicht auch nicht so wirklich ernst).
Ich denke, auf nicht-Microsoft OSes wird C# nicht so schnell überhand gewinnen.
Vielleicht interessierts ja jemanden: Die Homepage von meinem Lehrer liegt auf www.piepers.de .
Jörg _________________ www.messiahzone.de.vu |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 19.02.2003, 22:02 Titel: |
|
|
@Jörg + Christian: So schlimm ist das mit den Strings nicht, da es für alle Anwendungsfälle Bibliotheksfunktionen gibt bzw. durch verketten derselben erreicht werden können. Beispiel:
Code: |
private String LoHMLSpecialChars(String str) {
return str.Replace("&", "&").Replace("<", "<").Replace(">", ">").
Replace("\"", """).Replace("[", "&slt;").Replace("]", "&sgt;").Replace("\n", "&br;");
}
private String LoHMLReverseSpecialChars(String str) {
return str.Replace("&br;", "\n").Replace("&sgt;","]").Replace("&slt;","[").
Replace(""", "\"").Replace(">", ">").Replace("<", "<").Replace("&", "&");
}
|
Diesen Code hatte ich mal verwendet, um auch spezielle Sonderzeichen HTML-Ähnlich in Strings unterzubringen. Durch die Verkettung der einzelnen Schritte zu einem großem Schritt geht weder die Performance noch der freie Speicher in die Knie.
Pointerarithmetik mit Strings (Arrays) ist eh eine heikle Sache, bei der recht schnell Speicherlecks entstehen können. (Nichts für ungut - sauber programmiert sind sie durchaus eine schnelle Möglichkeit, Strings zu manipulieren) Der GC in C# verhindert die Speicherlecks und auch wenn ich anfangs recht skeptisch war, was den GC in seiner Gründlichkeit angeht (zuviel / zuwenig) habe ich keinerlei negative Erfahrungen machen müssen. C# verwendet 2 verschiedene Technicken, um freiwerdene Speicherbereiche zu erkennen: 1. Die Referenzzähung - Ist vorallem bei Zirkelbezügen aufwendig und langsam (und die einzige Möglichkeit in Java) und eine 2. weitere Methode, die sehr schnell ist und nur bei bestimmten Voraussetzungen angewendet werden kann. Die sind aber fast immer gegeben. Dafür belohnt C# einem mit produktivität - mann kann sich auf das eigendliche Problem konzentrieren und muss nicht umständlich erst überlgen, wie man das am besten in den Speicher bekommt. Auch sind solche Dinge wie ein expliziter Boolean-Datentyp sehr hilfreich, um Semantikfehler zu vermeiden...
Alles in allem eine sehr gut durchdachte Sprache.
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
Jörg JLI MVP
Anmeldedatum: 19.07.2002 Beiträge: 182 Wohnort: Siegen/NRW Medaillen: Keine
|
Verfasst am: 25.02.2003, 19:34 Titel: |
|
|
Wo wir grad schon mal dabei sind, hab ich nochn paar Fragen zu C#:
1. Gibt's eigentlich ne Makrosprache (wie bei C++ mit #define)
2. Gibt's jetzt ma endlich ein exklusives logisches Oder?
Danke
(vielleicht fallen mir nochn paar mehr Fragen ein, die werde ich dann stellen, wenn niemand was dagegen hat )
Jörg _________________ www.messiahzone.de.vu |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 25.02.2003, 20:13 Titel: |
|
|
Jörg hat Folgendes geschrieben: | 2. Gibt's jetzt ma endlich ein exklusives logisches Oder? |
Gibt es doch in C++ auch!? O.o ... ^ _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 25.02.2003, 20:20 Titel: |
|
|
1. Eigendlich nicht, obwohl ich schon ein paar Konstanten gesehen habe, die aber direct vom Compiler gesetzt werden. Als Makrosprache sind die aber sicherlich nicht geeignet, da es auch kein #ifdef &Co gibt.
2. Code: |
// cs_operator_bitwise_OR.cs
using System;
class Test
{
public static void Main()
{
Console.WriteLine(true ^ false); // logical exclusive-or
Console.WriteLine(false ^ false); // logical exclusive-or
Console.WriteLine("0x{0:x}", 0xf8 ^ 0x3f); // bitwise exclusive-or
}
}
|
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
Jörg JLI MVP
Anmeldedatum: 19.07.2002 Beiträge: 182 Wohnort: Siegen/NRW Medaillen: Keine
|
Verfasst am: 25.02.2003, 20:24 Titel: |
|
|
^ ist ein bitweises Oder, wobei mich gerade der Geistesblitz trifft, dass man es ja eigentlich auch als logisches Oder umfunktionieren kann:
Code: |
if ( (bln1) ^ (zahl1==zahl2) ^ (0==strcmp(sz1,sz2)) )
....
|
Hätt ich auch früher drauf kommen können ... _________________ www.messiahzone.de.vu |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|