Diskussion:C-Sharp
Objektorientierung
Den verqueren und sehr kurzen Abschnitt über Objektorientierung ("Datenkapsel...") habe ich mal als Überarbeitungskandidaten markiert. Die dort genannte Wichtigkeit der Datenkapsel finde ich total übertrieben und ist mit Sicherheit nicht das einzig entscheidende Merkmal der Objektorientierung. Des weiteren trifft die dort genannte Kritik genauso auf Java und andere OOPs zu. Kann jemand mal etwas differenzierter dazu schreiben? Oder besser den Abschnitt entfernen? Es ist ja unstrittig, daß C# eine OOP ist (trotz aller Abstriche, die verbreitete OOPs wie Java, C# und C++ am Konzept machen).
- Ich hab den Quatsch entfernt. Aber der Artikel hier ist sowieso - ich sag mal vorsichtig - stark verbesserungswürdig. Vielleicht sollte "man" das Ding neu schreiben und sich besser an der englischsprachigen Fassung orientieren [1]. --Novox 15:36, 9. Mär. 2008 (CET)
Seltsamer Redirect?
Warum führt "C#" in der Artikelsuche zu "C"? Ich habe ja gelesen, dass "C-Sharp" nicht der richtige Artikelname ist, aber warum landet man denn bei einem Artikel, der weder C# noch C-Sharp heißt? Werden diese ganzen technischen Einschränkungen irgendwann aufgehoben? Schließlich läuft Die Wikipedia doch schon längst mit Unicode, oder? 130.83.73.64 18:30, 14. Dez. 2006 (CET)
- Das '#' hat eine spezielle Bedeutung in der URL: Der Text hinter dem '#' verweist auf eine spezielle Stelle in einer Seite. Der Teil wird aber nicht an den Webserver gesendet, sondern direkt vom Browser interpretiert. Der Wikipedia-Server wird also nach dem Artikel 'C' gefragt und weiss gar nichts von dem '#'. 62.226.28.9 21:08, 18. Feb. 2007 (CET)
Klassen und Datentypen
Aus der Wikipedia-Seite zu Datentypen kann ich nicht entnehmen, warum ein Datentyp durch das Erweitern um die Möglichkeit zur Vererbung kein Datentyp mehr sein soll; Gleiches bezüglich Polymorphie.
Vielleicht könnte man den Punkt, falls stichhaltig, im Artikel zu Datentypen genauer ausführen ... falls nicht: die Formulierung im C#-Artikel entsprechend vorsichtig gestalten. :-) Zäh-Scharp 21:23, 14. Jul 2004 (CEST)
- Also die Definition eines Datentypen ist in der Informatik-Literatur, die mir vorliegt, Z.B. Informatik-Duden, Informatik-Handbuch (Rechenberg-Pomberger) die Verbindung einer Wertemenge mit den darauf definierten Operationen. Auch mein Studium hat mir dies so vermittelt. Jetzt sagst Du, wenn ich dich recht verstehe, dass durch das Hinzufügen weiterer Eigenschaften, die Grundeigenschaft Datentyp nicht verloren geht. Das klingt logisch, so habe ich nochmal überprüft woher die Aussage in Datentyp bzgl. Polymorphie und Vererbung stammt. Ich habe sie aus dem Ursprungsartikel kopiert ohne länger darüber nachzudenken. Inzwischen ist mir klar, dass Datentypen und Klassen etwas grundverschiedenes sind. Denn Klassen haben zwar auch Operationen, meist Methoden genannt, sie operieren jedoch auf den Attributen der Klasse, welche selbst typisiert sein können. Die Eigenschaft der Polymorphie und der Vererbung hat nur eine Klasse, niemals ein Datentyp. Bestimmte Methoden einer Klasse rufen evtl. nur anderen Methoden in anderen Klassen auf, operieren damit also gar nicht auf einem Wertebereich. Das sind für mich genügend Indizien, dass ich beim Erstellen von Datentyp diese Angabe einfach zu ungeprüft übernommen habe. Ich werde den Artikel Datentyp korrigieren. Ein letztes Indiz: In meiner inzwischen fast achtjährigen Zeit, in der ich mich im Umfeld der Informatik bewege, bist du der erste, der eine Klasse als Datentyp bezeichnet hat, obwohl das natürlich nichts heissen muss ;-) --Friese 22:26, 14. Jul 2004 (CEST)
Etwas komische ausdrucksweise
Im Artikel werden oft Delegierte erwähnt, gemeint sind damit Offensichtlich Delegates. Ich habe bisher in keinem Deutschen Fachbuch / Buch über C# den Begriff so gesehen. Dort wird fast immer nur über Delegates geredet. Sollte man das vielleicht ändern?
Delegierte vs. Delegates
In der Literatur liest man in der Regel 'Delegates'. In meiner ursprünglichen Version des Textes habe ich auch das Wort Delegates verwendet. Wurde dann von jemandem verändert. Ich finde man sollte zu dem üblichen Begriff zurückkehren. --Prowal 23:41, 28. Okt 2004 (CEST)
- sehe ich genauso - hab's gemacht. -- ∂ 23:42, 28. Okt 2004 (CEST)
'Marksoft' und angebliche Betriebssystemabhängigkeit
Irgendjemand besteht seit Monaten darauf, dass C# nur auf Microsoftbetriebssystemen laufe. Ist natürlich Unsinn, eine allgemeinverwendbare Sprache wie C# kann prinzipiell auf jedem Betriebssystem implementiert werden. Wie ja auch das Mono-Projekt zeigt. Dass die Microsoft-Implementierung bzw. die zugehörige Klassenbibliothek Windows-Betriebssysteme besonders unterstützt ist nicht verwunderlich. Spricht aber nicht gegen C# bzw. 'Marksoft' wie der 'jemand' nicht müde wird immer wieder einzutragen. Ich gehe lösche seine diesbezgl. Ergänzungen wieder. --Prowal 23:47, 28. Okt 2004 (CEST)
- Offensichtlich wird auch von der selben Person immer wieder C# mit .NET gleichgesetzt. C# ist aber nur eine von vielen .NET-Sprachen. Wir haben einen ausführlichen Artikel zum Thema .NET, in dem auch die Marketingziele von Microsoft beleuchtet werden. Ich schlage deshalb vor, die Passage, in der C# zum Anti-Java-Marketingblablaziel aufgebauscht wird, zu entsorgen. Unser .NET-Artikel beschreibt das Marketingkonzept. --22:06, 30. Okt 2004 (CEST)
Das alte Konzept einer virtuellen Maschine
Zum x-ten Male löscht ein Anonymus mir den Satz "Das selbe Konzept ist schon lange von anderen Programmiersprachen bekannt z.B. von Smalltalk, Java oder Python." Immer mit der Bemerkung "mit Sicherheit nicht das selbe Konzept".
Ich würde den Satz gerne behalten, ist doch interessant, dass diese Idee uralt ist, siehe auch die Beiträge zu Bytecode und virtuelle Maschine. Wenn nichts dagegen spricht, werde ich den Satz demnächst wieder einfügen, mit Links zu diesen Beiträgen. --Prowal 14:43, 1. Nov 2004 (CET)
- Ja, das ist ein interessanter Aspekt. Allerdings finde ich, sowas gehört nach .NET anstatt nach C#, denn es ist ein Aspekt der Plattform und nicht der Programmiersprache.
Der Einwand mit der Plattform ist imo berechtigt, jedoch muß für den compiler erkennbar sein, wo native code bzw. libs verwendet werden. Dies ist bei c# der fall und daher ist c# .net-fähig. Wenn anonymus den satz löscht "Das selbe Konzept ist schon lange von anderen Programmiersprachen bekannt z.B. von Smalltalk, Java oder Python.", dann ist es vermutlich die marketing-abteilung von microsoft, weil hier c# tendenziell negativ dargestellt wird. Außerdem steht anzumerken daß unter "Konzepte" nur äußerst vage andeutungen gemacht, also appetithäppchen gestreut werden. Der Leser erfährt nichts konkretes und muß sich anderswo schlau machen - für ein wiki unwürdig imo. Das konzept der MSIL aka CIL aka virtuelle maschine aka zwischensprache mit verweis auf andere sprachen gehört (wieder imo) sehr wohl in die liste der konzepte von C#. Aber wenn microsoft wiki sponsert, denn natürlich nicht. Mit bestem Gruß (KL)
'Delegate, Delegates' nach 'Delegat, Delegaten'
Ich habe versehentlich Zäh-Scharps Änderung von 'Delegate' nach 'Delegat' überschrieben. Nach wie vor halte ich das englische Delegate für passender, da es in der Literatur häufiger verwendet wird. --Prowal 16:18, 1. Nov 2004 (CET)
- Ok, habe es gesehen und wiederhergestellt. "Delegat" ist die Originalbezeichnung von Microsoft. Zäh-Scharp 16:30, 1. Nov 2004 (CET)
- Einverstanden, das ist ein Argument, aber meine Ausführungen zu Programmausführung der Microsoft-Implementierung und zur Standardisierung der Sprache hättest du ja nicht gleich wieder löschen müssen. Zugegeben, man kann drüber streiten ob Implementierungsdetails zu einem Artikel über eine Programmiersprache gehören, aber ich glaube, dass im Falle von C# viele Leser auch Informationen über die verbreitetste Implementierung erwarten. Richtig, das findet man auch in dem .NET-Artikel, aber ein paar Zeilen dazu fände ich nicht verfehlt. Und Infos über die Standardisierung durch die ECMA und andere Implementierungen gehören definitiv in den Artikel. Prowal 20:49, 1. Nov 2004 (CET)
- Dieses Mal liegt der Fehler auf meiner Seite. Mir ist nicht ganz klar, wie das passiert ist, jedenfalls habe ich die Zeilen soeben wiederhergestellt. Ich habe auch die Zeilen zu .NET wiederhergestellt, obwohl ich finde, dass sie hier tatsächlich nicht so gut aufgehoben sind, aber ich wollte erst einmal meinen Fehler wieder rückgängig machen. Zäh-Scharp 19:03, 2. Nov 2004 (CET)
- Einverstanden, das ist ein Argument, aber meine Ausführungen zu Programmausführung der Microsoft-Implementierung und zur Standardisierung der Sprache hättest du ja nicht gleich wieder löschen müssen. Zugegeben, man kann drüber streiten ob Implementierungsdetails zu einem Artikel über eine Programmiersprache gehören, aber ich glaube, dass im Falle von C# viele Leser auch Informationen über die verbreitetste Implementierung erwarten. Richtig, das findet man auch in dem .NET-Artikel, aber ein paar Zeilen dazu fände ich nicht verfehlt. Und Infos über die Standardisierung durch die ECMA und andere Implementierungen gehören definitiv in den Artikel. Prowal 20:49, 1. Nov 2004 (CET)
Verschiedene Anmerkungen zum Artikel
- Das Konzept könnte besser erklärt sein. Es werden Attribute und Delegaten erläutert, also zwei sehr spezielle Themen. Hier sollte statt dessen genauer auf das generelle Konzept eingegangen werden. Attribute und Delegaten sind übrigens auch nicht gerade Besonderheiten, in denen sich C# von anderen Programmiersprachen abhebt, vielleicht sollte man also etwas anderes heraussuchen.
- Im Abschnitt zur Programmausführung wird - anstatt Allgemeines zu beschreiben - eine spezielle Implementierung herausgegriffen (der Microsoft-Compiler). Wer sich nicht auskennt, muss den Eindruck gewinnen, dass es sich um allgemeingültige Eigenschaften der Sprache C# handelt. [nach .NET verschoben]
- Die Weblinks, die sich in erster Linie auf .NET beziehen, sollten auch nicht hier auftauchen (sollten ggf. in den .NET-Artikel) [entfernt]
- "Bytecode" ist Java-Sprachgebrauch. Außerdem bezieht es sich auf die Ausführungsumgebung und nicht auf die Programmiersprache C#.
- Es ist ohne weitere Erläuterungen zu schwer zu verstehen, was mit "Stack-basierter" VM gemeint ist. Dies bezieht sich ebenfalls auf die Implementierung statt auf die Programmiersprache C#.
- Just-In-Time-Compiler bezieht sich auf die Laufzeitumgebung. Hier sind wir meilenweit von der Programmiersprache C# entfernt.
- Die Hinweise auf die Standardisierung durch die ECMA sind eine interessante Information. Sie passen gut in den Artikel.
- Der "Programmierkurs bei Wikibooks" ist meiner Meinung nach noch nicht so weit, als dass man ihn hier empfehlen sollte; ebensowenig der Terra-Kurs. [entfernt]
Zäh-Scharp 11:33, 11. Nov 2004 (CET)
- Der Artikel enthält eine Marketing-Aussage, die einen falschen Eindruck erwecken. Leider wird häufig "effektiv" auch als "performant" missverstanden. Dass man mittels Custom Attributes und Reflexion Code erstellen kann, der sehr allgemeingültig ist, ist richtig, nur leidet die Performanz darunter so stark, dass man dann unter Umständen mit den Mitteln auf System.Reflection.Emit darauf losgehen muss. Der Abruf des Wertes einer einfachen Eigenschaft (d.h. der Getter macht nichts außer den Inhalt eines Feldes zu liefern) per Reflexion ist, nach meinen Tests, etwa 400 mal langsamer als der (nicht-erste) Aufruf eines Delegaten, der aus einer DynamicMethod erzeugt wurde, um genau die gleiche Eigenschaft abzurufen. Die Möglichkeiten der dynamischen Codegenerierung sind aber wieder .NET-spezifisch und haben nichts mit C# zu tun. Ich wüsste momentan nicht, wie ich den Artikel so verändern sollte, dass einerseits dieser Punkt unmissverständlich wird, dass andererseits aber keine langen Ausschweifungen zu .NET nötig sind...
- Sichtbarkeitseinschränkungen von Gettern und Settern sind keine besondere Fähigkeit von C#, das geht mit C++/CLI auch [entfernt]:
private: int m_someField; public: property int SomeProperty { public: int get() { return m_someField; } protected: void set(int newValue) { m_someField = newValue; } }
Alexander Noé 11:32, 22. Mai 2008 (CEST)
Externe Links
Die Liste der externen Links ist meiner Meinung nach zu lang. Mit den Microsoft-Links sind eigentlich schon die wichtigsten Bereiche abgedeckt. Zudem habe ich bei einigen Links Bedenken, ob sie dem Qualitätsanspruch von Wikipedia gerecht werden. Auf der Abschussliste stehen meiner Meinung nach die folgenden Links:
- www.guidetocsharp.de (nicht erreichbar)
- c-sharpcorner.com
- www.mycsharp.de
Was meint ihr? Zäh-Scharp 23:03, 16. Jan 2005 (CET)
kann ich nur zustimmen. --LoopAnyway 22:38, 19. Aug 2005 (CEST)
Ich war immer gegen Werbung in der Wikipedia, dennoch sehe ich diese Links nicht als Werbung sondern als Hilfe für Leute die sich in dem Berreich C# Weiterbilden möchten. Ich selbst war am anfang auf der suche nach solchen Links. --N. Burkhoff 14:10, 4. Aug 2006 (CEST)
Vorschläge Kopfzeile
Ich möchte einen Vorschlag für eine neue Kopfzeile machen, die (imo) die wesentlichen Einflüsse von C# besser reflektiert:
C++
Microsoft
.Net
Sinngemäß: "C# ist eine im Wesentlichen von C++ abgeleitete Sprache. Sie wurde von Microsoft entwickelt und erlaubt die Erzeugung eines CIL-Codes, der im .Net-Framework verwendet wird."
Als nächsten Satz könnte man z.B. auf objektorientierung, Einflüsse von Java eingehen, auf Attribute aka Reflection, den begriff managed code usw.
Begründung: Der hinweis auf c++ ist informativer als "objektorientiert", wie es im moment lautet. Außerdem ist nicht ganz klar was heißen soll "C# [...] ist eine objektorientierte Programmiersprache, die [...] eingeführt wurde.
Wo wurde c# eingeführt, und wie tief ? imo kann hier nur "der markt" gemeint sein. Das sollte dann dort aber auch stehen. Soweit ich weiß hat microsoft C# entwickelt und dann "den markt" damit penetriert. Den zweiten Teil würde ich allerdings nicht in wiki schreiben.
Ich bitte um Kommentare.
Mit bestem Gruß (KL) --213.39.191.230 10:18, 13. Dez 2005 (CET)
- Wie belegst du deine Behauptung, "C# ist eine im Wesentlichen von C++ abgeleitete Sprache. – ? – Zäh-Scharp 16:41, 17. Dez 2005 (CET)
- Es wird der gleiche Denkfehler wie bei Java damals gemacht: Sieht ähnlich aus, weil man sich bei der C++ Syntax bedient hat und schon wird C++ zum Vater. Java hat mehr mit Smalltalk gemeinsam als mit C++ und C# ist Java in vielen Punkten sehr ähnlich. Wenn man heute eine neue Sprache etablieren möchte, tut man gut daran die Syntax von C++ zu übernehmen, weil diese aus C++ und Java rund 80% der Entwickler bekannt ist. Da hat damals Sun begriffen und mit C# auf Microsoft. C++ Syntax scheint ein Erfolg-Faktor zu sein, das gilt auch für PHP. C# ist eine Mischform und bedient sich Konzepten aus C++, aus Java, auf Smalltalk, Eiffel hab ich entdeckt - man findet bestimmt noch einige mehr. Man darf dabei auch nicht übersehen, das C++ konzepte jüngerer Sprachen in späteren Standards übernommen hat. Die ersten C++ Versionen Anfang der 90er Jahre kannten weder Exceptionhandling, Templates oder Reflection. Und nocht nicht einmal die C++ Synstax stammt von C++, sondern von C ;-) Die erste Sprache welche vergleichbare Konzepte bediente und bei der alle moderneren Sprachen abgeschaut haben, war Smalltalk.
Ich hab nicht vor, darüber jetzt ein Buch zu schreiben. Jedenfalls sollte dort genau eine Sprache genannt sein, die mit C# die engste Verwandschaft aufweist. Dies kann sicher nicht C sein, da der Sprachumfang wesentlich geringer ist. Sollte jemand für eine alternative Sprache plädieren (also nicht-C++) , sollte er dies konstruktiv vorschlagen. imo. Besten Gruß (KL) --Kai-L 12:42, 21. Dez 2005 (CET)
Symbolik "C#"
Auf der Seite über das Hash-Symbol ist ein extra Abschnitt, in dem klar darauf hingewiesen wird, dass die Raute nicht das korrekte Zeichen für das Cis bzw. "C sharp" ist. Darunter wird sogat explizit auf C# eingegangen, und erklärt, dass "C#" in Wirklichkeit ein musikalisches Erhöhungszeichen im Namen trägt. Ich kenne mich mit C# nicht aus, und kann dementsprechend den Wahrheitsgehalt dieser Aussage nicht bewerten, entspricht dies jedoch den Tatsachen, denke ich, sollte man den entsprechenden Abschnitt hier erweitern, und die Problematik verdeutlichen - insbesondere in Anbetracht der Tatsache, dass die Erläuterung zum Titel klar sagt "Der korrekte Titel dieses Artikels lautet „C#“.". (Was, glaubt man dem Hash-Artikel, technisch gesehen eine Falschaussage ist)
- Charly, 172.182.29.42 17:15, 4. Jan 2006 (CET)
- Laut einer E-Mail von MS in der englischen Wikipedia ist C# der Einfachheit halber ok und wurde auch so standardisiert. Mit # ist ♯ gemeint. Es ist wohl das beste, wenn man geschrieben bei C# (als C-Sharp) bleibt und auf Grafiken oder so es als C♯ darstellt. MS stellt in Visual C# 2005 Express das Zeichen im Icon und auf der Start Page als ♯ dar.
- --89.53.118.2 13:02, 24. Feb 2006 (CET)
In 3 Jahren C#-Entwicklung ist mir noch keiner dieser "scherzhaften Namen" über den Weg gelaufen. Auch google gibt keine Treffer, die die Relevanz dieser Bemerkung rechtfertigen würden. --Timekeeper 10:17, 20. Sep 2006 (CEST)
Da das jetzt such noch mehr von diesen lustigen Namen werden, möchte ich noch mal auf die Überflüssigkeit dieses Absatzes hinweisen. Das ist absolut unwissenschaftlich und trägt zur Erklärung des Themas nicht bei. Wörter wie "C-Schweinegatter" drücken eigentlich nur die subjektive Meinung einiger Autoren aus. Und auch das neue "C-Knast" ist nur ein weiteres Beispiel dafür. Die Erklärung im englischen Beitrag sind da wesentlich informativer. Wenn niemand etwas dagegen hat lösche ich diese Sätze. --Timekeeper 18:38, 9. Okt. 2006 (CEST)
Ich wäre auch dafür den Satz mit "Der korrekte Titel dieses Artikels lautet „C#“." zu löschen, da das schlicht falsch ist, auch wenns der Einfachheit so akzeptiert wird. Da könnte man ja auf den entsprechenden Absatz verweisen, aber davor den korrekten Namen der Sprache setzen. Wenn niemand was dagegen hat, dann würde ich das so machen.--JDF 14:01, 12. Sep. 2007 (CEST)
C#-Quellcode-Dateien?
Welche Endung haben C#-Quellcode-Dateien? --RokerHRO 15:07, 17. Mär 2006 (CET)
- Falls noch mehr gibt bitte erweitern, die Symbol-Icons müsste mal jemand erstellen, falls es sie hier noch nicht gibt?! --FireDragon 23:16, 18. Mär 2006 (CET)
Symbol | Dateiendung | Typ |
---|---|---|
Datei:WindowsIcon-sln.png | .sln | Microsoft Visual Studio Solution |
Datei:WindowsIcon-suo.png | .suo | Visual Studio Solution User Options |
Datei:WindowsIcon-cs.png | .cs | Visual C# Source file |
Datei:WindowsIcon-resx.png | .resx | .NET Managed Resources File |
Datei:WindowsIcon-csproj.png | .csproj | Visual C# Project file |
Datei:WindowsIcon-settings.png | .settings | Visual Studio Settings-Designer File |
- Die Bilder sind alle weg, sind wohl wegen Lizenzproblemen gelöscht worden. :-) --RokerHRO 10:33, 6. Jun 2006 (CEST)
Marktsituation
Sind die Angaben bei der Marktsituation (.NET 1.1 bei XPSP2 enthalten, .NET2.0 bei Server 2003) korrekt ? Wie kann das sein, wenn z.B. das .NET 2.0 Framework erst 2005 fertig wurde ?
"Enorme Ressourcen"
(...) Microsoft setzt enorme Ressourcen für die Entwicklung von .NET ein.
"Enorme Ressourcen" klingt etwas unspezifisch und subjektiv (um nicht zu sagen "unenzyklopädisch" ;-), kann man das eventuell genauer beziffern? Womöglich sogar noch mit Quellenangabe? 145.254.33.232 00:03, 19. Sep. 2007 (CEST)
C# = C++++ ?
"Zudem kann das Sharp-Symbol # als ++++ gesehen werden, also C++ als Weiterentwicklung von C und "C++++" als Weiterentwicklung von C++."
Kann mir jemand erklären, warum das so sein soll? Meiner Meinung würde C++++ das zweifache Inkrement von C bedeuten, C# allerdings,wenn man das # aus der Musiktheorie nimmt, nur ein halbes Inkrement von C, da das # für die Erhöhung eines halben Tonschrittes gilt. --80.133.150.244 14:47, 6. Jun. 2007 (CEST)
- Soweit ich das weiß ist die Anspielung mit den ++++ nur darauf zurückzuführen, dass man # quasi aus 4 + zusammensetzt. C# ist ja schon prinzipell komplett unterschiedlich zu C++
- Tendenziell hat C# mit Java wesentlich mehr zu tun als mit C oder C++, das nur vorweg. [Diese Aussage ist subjektiv, wird mir aber groesstenteils bestaetigt werden denke ich] Das diese Sprache nun den Titel "C" enthaelt, ist vermutlich mehr oder minder ein Marketinggag, wie die Behauptun Java wuerde von C abstammen. Es ist eine einfache Tatsache dass die Lebendigkeit und Dauerhaftigkeit einer Programmiersprache von der Akzeptanz innerhalb der Szene abhaengig ist, und diesen Weg geht man nunmal gerne ueber den Buchstaben "C", mit dem hinzukommenden "#" laesst sich das Ganze eigentlich nur noch als Interpretationssache betrachten. Kannst ja mal den Presse-Beauftragten der .NET Abteilung von Microsoft anrufen und fragen. :> Das ist nicht anders als die Umdichtung von Oak nach Java und der Gruendung der ominoesen Theorie der Kaffeebar - just marketing. --Schwarzer8Kater 15:54, 5. Okt. 2007 (CEST)
- Zustimm. --85.216.16.64 12:26, 16. Jan. 2008 (CET)
- Ich habe auch von den vier "+" gehört. "++" und darunter nochmals "++" ergibt "#" - zumindest auf dem Papier. Bleibt die Frage, ob das in den Artikel übernommen werden soll. --didi, 11. April 2008
C#-Version eigentlich 3.0?
Im Artikel LINQ ist von einer hier nicht näher erläuterten C#-3.0-Version die Rede. Im Wikipedia-Artikel ist die C#-Version 2.0 auf 2005 datiert. --NeutralstandpunktDiskussion Beiträge 17:48, 22. Okt. 2007 (CEST)
- C# 3.0 ist als Beta zusammen mit dem .NET Framework 3.5, das die Möglichkeiten der neuen Version nutzt verfügbar. Jedoch eben noch nicht final. --L'ottimo 19:07, 22. Okt. 2007 (CEST)
- In diesem Zug sollte auch die neue Visual Studio Version nicht vergessen werden--Kevka 08:17, 3. Mär. 2008 (CET)
Objektorientierung und Datenkapselung
Der Abschnitt über den Zweifel an der Objektorientierung mangels Datenkapselung sollte dringend überarbeitet werden. Es wird nicht wirklich klar, was C# fehlt um Datenkapselung anzubieten. Es scheint so, als wäre hier der Autor mit dem Sprachelement "Properties" nicht ganz klar gekommen und hat daraus falsche Schlüsse gezogen.
- Ich bin dafür das der ganze Abschnitt verschwindet.Der ergibt so wirklich keinen Sinn. Meinem Vorredner muss ich mit seiner Einschätzung beipflichten...Da werden 2 Dinge miteinander verwurstet die so eigentlich nichts miteinander zu tun haben...--Bitsandbytes 17:38, 5. Mär. 2008 (CET)
Compiler für C#
Ich vermisse hier die Information, welche Compiler für C# es gibt,ob Bytecode oder Maschinencode erzeugt wird, usw.
- Siehe .NET bzw erster Satz im Artikel --Bitsandbytes 17:30, 5. Mär. 2008 (CET)
- Aus dem „ersten Satz im Artikel“ kann ich so etwas nicht entnehmen. Nach etwas stöbern, kombiniert mit einer Prise Vorwissen stellt sich die Sache für mich wie folgt dar:
- C# wird in einen Bytecode (kein auf Java beschränkter Begriff) gemäß dem Standard Common Language Infrastructure (CLI) übersetzt
- Der Bytecode ist für die Virtuelle Maschine was Maschinencode für den Prozessor ist; sowohl Java als auch C# sind compilierte Sprachen
- Die CLI ist vergleichbar dem Bytecode von Java, mit dem Unterschied, daß die CLI den Bytecode mehrerer Programmiersprachen spezifiziert (üblicherweise als .NET-Sprachen bezeichnet), während der Java-Bytecode Unabhängigkeit von der Plattform im Sinne von Betriebssystem und Prozessorarchitektur zum Ziel hat
- .NET ist eine Implementierung der CLI
- Alles korrekt soweit? Vielleicht könnten wir diese Informationen sinnvoll im Artikel unterbringen. --Tobias 14:38, 13. Jun. 2008 (CEST)
- Aus dem „ersten Satz im Artikel“ kann ich so etwas nicht entnehmen. Nach etwas stöbern, kombiniert mit einer Prise Vorwissen stellt sich die Sache für mich wie folgt dar:
- Siehe .NET bzw erster Satz im Artikel --Bitsandbytes 17:30, 5. Mär. 2008 (CET)
Konzept: ... gibt es nur in C#
Die letzten Zeilen aus dem Abschnitt Konzept stimmen nicht: "Im Gegensatz dazu gibt es anonyme Methoden jedoch nur in C#. Auch statische Klassen gibt es nur in C# 2.0. Gleiches gilt für Kovarianz bzw. von Kontravarianz bei Delegaten."
Laut MSDN gibt es sowohl anonyme Methoden, als auch das Konzept der statischen Klassen in anderen .NET-Sprachen. Dazu die Links:
Anonyme Methoden und Codeanalyse
Static Class Design (Die deutsche Version hat einen Übersetzungsfehler, der die Aussage ziemlich verdreht.)
Wie es mit Kovarianz und Konztravarianz aussieht weiß ich nicht, wobei das ja auch eher ein grundsätzliches Problem von .NET, als von C# ist. Deshalb denke ich, dass das auch in anderen .NET-Sprachen möglich ist. Das ist allerdings reine Mutmaßung.
Oder sollte der zitierte Abschnitt vieleicht heißen, dass besagte Elemente erst ab C# Version 2.0 zur Verfügung stehen und vorher noch nicht? Dann müsste der Abschnitt allerdings umformuliert werden.
Habe Kovarianz und Kontravarianz bei Delegaten in VB (VS 2008) getestet. Geht da auch. -- KleinerHerbert 18:33, 23. Jun. 2008 (CEST)
Falscher Link
Im Abschnitt "Konzept" wird das Wort "Attribut" zu Attribut (UML) verlinkt was aber falsch ist! Auf der Ebene der Programmiersprache ist mit dem (zugegeben falsch verstehbaren) Wort "Attribut" wohl aber eher das Konzept gemeint, was unter Java als "Annotation" bezeichnet wird. Daher wäre dieser Link richtig, wobei im Artikel Annotation auch auf den Begriff "Attribut" in C# aufmerksam gemacht werden müsste. Sehe ich das soweit richtig?
Naja keine Bange, ich habe den Link selbst entfernt!
Version 3.5
Es gibt von C# keine Version 3.5, das wird wohl mit der Version von .NET verwechselt. Deren Versionierung ist aber nicht synchron! Die aktuelle Version ist 3.0, die nächste wird 4.0 sein.
- Stimmt, habs geändert --Bitsandbytes 20:55, 22. Nov. 2008 (CET)
Mehr Details gewünscht
Gerade im Vergleich zu den Artikeln über C++ oder Java finde ich diesen hier etwas mager. Es sollte meiner Meinung nach etwas genauer auf die Sprachfeatures, auch in der Entwicklung über die verschiedenen Versionen von C#, eingegangen werden. Eine Auflistung der wichtigsten Features, nach Version, mit jeweils kurzer Erläuterung sollte zunächst schon genügen. Ideen hierzu? -- bsdev 01:27, 23. Nov. 2008 (CET)
- Danke für den Hinweis zu dem Artikel, den hatte ich noch nicht gelesen. Ich verstehe den genannten Artikel aber mehr als Anschauungsbeispiel für die Syntax von Sprachkonstrukturen, wie z.B. Kontrollstrukturen. Mir ging es aber um die Auflistung und (möglichst kurze aber prägnante) Erläuterung von Dingen wie Generics, Nullable Types, partielle Klassen und Methoden etc. 11:36, 23. Nov. 2008 (CET)
Hallo Welt
Ich habe den Code mal korrigiert, denn System.WriteLine() gibt es nicht, es muss System.Console.WriteLine() heissen. Ebenfalls habe ich die Klasse auf das von VS typische generierte "Program" geändert, in dem sich die Einstiegsfunktion Main() befindet. -- 13:14, 23. Nov. 2008 (CET)