Vielen Dank für das Lob!!! Das motiviert echt sehr! Es geht weiter, sobald die Schule nach dem Schulbeginn wieder in geordneten Bahnen verläuft und alle anderen Freizeitaktivitäten geregelt sind.
Wenn ein, zum Zeitpunkt des Videos, 14 Jähriger (hoffe das stimmt so :P) C# besser erklärt als ein Dozent welcher mehrere Programmiersprachen schreibt und behauptet ein "Virtuoser, gar eine Koryphäe der Programmier-Kunst" (Seine Aussage) zu sein, kann ich nur meinen Hut ziehen! Vielen Dank für die ganze C# Video Reihe, rettest mir gerade meinen allerwertesten so kurz vor der Prüfung zum FISI!
Von mir auch ein großes Lob =) Hatte C/C++ im Studium und wollt mal was neues lernen und das geht echt fix und macht Spaß mit deinen Tutorials. Find auch nicht, dass es zu schnell ist. Wenn man mal länger braucht kann man ja einfach stop drücken o.o find ich angenehmer als wenn immer ewig lange Pausen im Video wären
uff 45 Minuten schauen, 45 Minuten verstehen. Echt zeitaufwendig dieses Unterthema, aber hab denke ich jetzt das wichtigste verstanden aus teil 1 :) Krass was du damals alles schon wusstest!
Hey, mir ist es aus irgendeinem Grund nicht möglich das Gewicht in programm.cs zu verändern(27:30). Ich hab alles so gemacht, wie gezeigt... Weiß jemand weiter?
+Karl Becker Kann es mit dem Fehler zu tun haben, den René Priem angesprochen hat? Irgendwo habe ich anscheinend mal in einem Getter eine falsche Variable zurückgegeben. Ansonsten kannst du gerne mal den Code posten.
Julian Aßmann Noch eine Frage, was heißen die Angaben "value" und "void", dies konnte ich leider nicht im Tutorial finden. Trotzdem großes Lob, ich kann jetzt schon ein richtigen Taschenrechner (mit automatischer Erkennung von +,-,* und / in der Aufgabe) programmieren und das schon nach einem Tag, nachdem ich angefangen habe mich damit zu befassen.
value (deutsch: Wert) ist ein Wert, der in den Eigenschaften automatisch verfügbar gemacht wird. Die Eigenschaften sind also quasi Methoden, denen (für den Programmierer unsichtbar) ein Wert namens value übergeben wird. Beispiel: Du hast eine Klasse mit der int-Eigenschaft X und ein Programmierer erstellt eine Instanz (namens myClass) der Klasse und setzt die Eigenschaft mit myClass.X = 10;. Dadurch wird dein Set-Accesor aufgerufen und als value wird 10 übergeben (siehe ab 9:53 im Video). void erkläre ich im Methoden-Video genauer. void (deutsch: leer) bedeutet einfach nur, dass eine Methode keinen Wert zurückliefert. Ich wünsche dir weiterhin viel Spaß, wenn nochmal Fragen auftreten, einfach Fragen! Viele Grüße, GCT
Bis jetzt alles klar bis auf eine Unklarheit: Wenn in der Accesor-Methode die Anweisung ausgeführt wird, heißt das normalerweise der Wert von wird an die Methode
+Jürgen Hoffmann Nein, nach return ist immer Schluss. Du kannst natürlich trotzdem sinnvoll mehrere returns in einer Methode haben, wenn du sie z. B. mit if-Abfragen trennst. Allerdings bezieht sich dein Verständnisproblem, soweit ich das richtig verstehe, auf etwas anderes. Die Eigenschaft Alter besteht quasi aus zwei Methoden, einmal der Get- und der Set-Methode, und ist nicht selbst eine. Das heißt, ein return im Get-Accessor hat keinen Einfluss auf den Set-Accessor und umgekehrt. Ich hoffe, ich habe deine Frage beantwortet, ansonsten einfach nochmal schreiben :-)
+Turing Informatik Thx für die Antwort. Ich kann es mir dann nur so erklären, daß entweder Get oder Set aufgerufen wird, abhängig davon ob lesend oder schreibend zugegriffen wird. Denn beide gehen nicht, da bei Get die return-Anweisung ausgeführt wird, und im Code Set erst nach Get steht. Ähnlich wie bei einer Case-Anweisung ... Liege ich richtig ?
Mehr oder weniger ja. Bei beiden UI-Plattformen sind natürlich noch zusätzliche Kenntnisse über die verwendeten Klassen notwendig. Bei Windows Forms ist das sehr leicht durch ein bisschen Ausprobieren und Googlen herauszubekommen (ein Button ist z. B. durch die Klasse System.Windows.Forms.Button repräsentiert, Überraschung) und dort unterstützt einen der Designer in Visual Studio durch Drag&Drop, bei WPF/Universal Apps muss man auch die Oberflächenbeschreibungssprache XAML lernen (das wird in den entsprechenden Tutorials aber auch behandelt und ist nicht so wahnsinnig schwer ;)). Abgesehen davon ist C# eben immer C#.
Ok danke :) Ich sehe ja du hast schon ein Tutorial zu Windows 10 Universalanwendungen gemacht, laufen die eigentlich auch auf anderen Windowsversionen?
Kurze Frage: Dient das Dispose in welches du "Datenbank freigeben" kommentiert hast zur Sicherheit vor debuggern? Also dass man nicht so einfach etwas abgreifen kann?
Nein, Debugger geben ja den ursprünglichen Quellcode aus dem Binärcode des Programms, aber nicht die Daten, die damit verarbeitet werden. Baut ein Programm eine Verbindung zu einer Datenbank auf, muss diese am Ende der Sitzung wieder freigegeben werden. Genau das gleiche gilt für normale Dateien oder jede andere Form von Ressource, die das Programm benutzen kann. Da diese Ressourcen ja meist von Klassen verwaltet werden, die den Zugriff managen, nutzt man deren Destruktor, um die Ressource freizugeben, sobald sie nicht mehr benötigt wird.
"value" ist quasi ein unsichtbarer Parameter, der bei jeder Eigenschaft übergeben wird. Dieser hat immer den Datentyp der Eigenschaft (also bei einer int-Eigenschaft den Datentyp int) und als Wert beinhaltet value den Wert, den der Programmierer setzen will. Wenn du also z. B. eine Eigenschaft der Klasse Button setzen willst, sagen wir die Eigenschaft "Text", und du schreibst button1.Text = "Hallo Welt"; dann wird in der Klasse Button die Eigenschaft "Text" aufgerufen und dieser ein (unsichtbarer) Parameter namens "value" mit dem Wert "Hallo Welt" übergeben. Eine Eigenschaft ersetzt also quasi Methoden, die die Werte zurückgeben oder setzen (in C++ macht man das so). Bei einer Setz-Methode müsste ja auch der Wert, auf den die Variable gesetzt werden soll, übergeben werden, bei Eigenschaften passiert das im Hintergrund. Ich hoffe, das war verständlich, und weiterhin noch viel Spaß!
Hallo, also ich komme von Visual Basic. Da hat mein ein ReadOnly Property. Und hier? Gibt es nicht? Man schreibt nur ein get. Also gegenüber VB gefällt die Kürze und Schlichtheit. Die Klammern sind halt....
Turing Informatik Ja. Also VB kenne ich. C# baut ja auch nur auf dem Framework auf. Aber ich hab mir doch lieber mal ein Buch bestellt. VB ist viel schreiben. C# fasst es zusammen. Ich wollte immer das Code die geringste mögliche Kürze hat. Dieses Buch habe ich mir nun einfach bestellt: bei Amazon: Einstieg in Visual C# 2013: Ideal für Programmieranfänger geeignet. Inkl. Windows Store Apps (Galileo Computing) Broschiert - 12. Dezember 2013 von Thomas Theis
Super Arbeit!!! Gut erklärt und mit verständlichen Beispielen erläutert. Doch kleines Manko gibts, auch wenn das Thema natürlich etwas umfangreicher ist als in den vorrangegangenen Videos, so bist du doch etwas zu schnell. Man hat das gefühl als musst u as ma ebend runter ballern. ^^ Vieles errinnert natürlich an Cpp und wenn man da natürlich schon etwas Erfahrung hat kommt man je nach Erfahrungslevel mit dir mit. Aber ein ist sicher. Gefällt mir! Man lernt was und du kommst sehr menschlich rüber. Das macht immer lust auf mehr. *Weiter So.*
also ich wil das mehr so umsetzten das der client an server eine speicheraddresse schickt und der server es den an alle anderen clients weiter schickt und die verarbeiten das den
Ich versuche seit gestern, mich in C# einzuarbeiten. Bis auf Schulinformatik habe ich auch kaum Erfahrung. Die bisherigen Tutorials fand ich auch alle sehr gut verständlich und die haben mir auch sehr geholfen. Das hier ging mir aber ein wenig sehr schnell (was vermutlich auch daran liegt, dass das Thema sehr groß ist). Beispielsweise habe ich auch nach mehreren Malen nicht genau verstanden, wie das mit dem Stack und Heap Speicher funktioniert. Der Stack beinhaltet die Instanzen der Klasse Mensch? Aber die zugehörigen Variablen sind im Heap und es gibt Verweise dazwischen? Und wo steckt jetzt die Klasse selbst, die Blaupause von der die Instanzen gemacht werden? Auch das mit dem ref, out und param ging mir etwas schnell. Hab' ich es richtig verstanden, dass man die nur bei statischen Methoden braucht? Wäre deine Methode (Ändern) nicht statisch gewesen, hätte es dann ohne ref funktioniert? Gut, das kann ich ja auch selbst gleich noch ausprobieren. Try and Error...^^ Dazu kam dann noch die Methode foreeach, die noch nicht behandelt wurde. Okay, aber die Funktionsweise kann man sich auch ungefähr denken, wenn man weiß, was ein Array ist. Die kamen allerdings noch nicht vor. Soweit ich mich erinnere, werden Arrays doch so deklariert und initialisiert (als Beispiel) int a = [0,1,2,3] oder so ähnlich. Auf jeden Fall so, dass irgendwelche Klammern oder eine Funktion darum ist, die zeigt, dass es sich um ein Array und handelt. In deiner Methode Ändern standen aber einzelne parameter getrennt durch Kommata, obwohl doch deine Funktion Ändern ein Array gefordert hat (also bei der Erklärung für param). Wieso konnte das funktionieren? Also wieso mussten beim Aufruf von Ändern keine Klammern um die Zahlenfolge gesetzt werden? Ich hoffe, jemand kann mich hier erleuchten^^
Gutes Video. Ich habe eine Frage: Ich verstehe diese Return etc nicht.Bzw. ich verstehe es aber finde es überflüssig. Bei Visual Basic, gibt es das auch. Aber z.B. ich setze eine Variable "Alter" -> int Alter=30; oder VB Dim Alter as integer. Dann ist es einfach. Wenn ich das Alter will, dann mache ich xx = Alter. Wenn ich das Alter setzen will, dann Alter=xx. Basta :) Wenn ich das Alter nicht veränderbar will, dann schreibe ich Const Alter as integer. Dann ist es Read only. Ist ja einfach. Wieso all diese voids und returns und functions ? Gruss
Hi, erstmal danke für das Lob. Methoden sind aus verschiedener Sicht sinnvoll. Erstens ersparen sie einem das mehrfache Schreiben desselben Codes, sollte dieser an verschiedenen Stellen benötigt werden. Zweitens kann der Code so leichter in anderen Projekten wiederverwendet werden. Drittens müssen Wartungen nur noch an einer zentralen Stelle vorgenommen werden, man muss nicht 100 Mal den gleichen Code suchen und ändern. Viertens wird so der Code lesbarer (vorausgesetzt, man benamt die Funktionen entsprechend ihrer Funktion ;)). Statt eines komplizierten Algorithmus' direkt im Code steht dann der Name des Algorithmus mit ein paar Parametern da, die konkrete Implementierung desselben verwirrt also nicht beim Durchlesen des Codes. Wer sich für die Implementeriung interessiert, kann ja dann immer noch nachschauen. Fünftens wird dadurch erst die Zuordnung von Code zu Objekten/Klassen möglich - das spielt aber nur bei der objektorientierten Programmierung eine Rolle. (Sechstens: Rekursion ist so deutlich einfacher zu implementieren). Kurz: Der Mehraufwand ist mehr als gerechtfertigt. LG
Hallo, der Verlag musste seinen Namen aus rechtlichen Gründen ändern und heist jetzt Rheinwerk Verlag, deshalb sind jetzt alle Links nichtig. Ich werde das jetzt mal aktualisieren, aber hier erst mal der Link: openbook.rheinwerk-verlag.de/visual_csharp_2012/. Eine Übersicht von allen Openbooks findest du unter www.rheinwerk-verlag.de/openbook/, von da kannst du auch das Buch als gezippte Sammlung von HTML-Dokumenten downloaden. Viel Spaß!
Super Tutorial, habe mit den Grundlagen für C gestartet und hatte somit einen einfachen einstieg. Mein Gehirn macht kaum noch mit aber mir geht es : for(i=0, i
Naja, solange es nicht macht bool verstanden = false; do { versucheZuVerstehen(); // versucht verstanden auf true zu setzen if verstanden verstanden = false; Gehirn.WriteLine("Schaue Tutorial nochmal") ; } while (!verstanden)
so in der art wir sind ein kleines team was grad an ein multiplayer game arbeitet und wir wollen halt das überspeicheraddressen auslesen und an anderen weiter schicken der es den list und den in das game rein schreibt es funktioniert soweit alles prima bis auf das empfangen der datein :D
Sorry, aber ab dem Thema Garbage Collection (um Minute 39) wird über Destructoren geredet und wie man den Garbage Collection anspricht, aber die Beispiele und das erzähle tragen nicht zur erhellung bei. Muss mir dazu leider wohl doch noch andere professionellere Videos reintun. - Schade.
diese Datenkapselung setzt doch voraus, dass man völlige Verpeiltheit den Menschen unterstellt so dass man völlig verpeilter weise völlig verpeilten Programmieren zugriff auf dein eigenen Code gibt (wenn man selber besoffen ist vielleicht?) ... das setzt doch allgemein voraus, dass man nicht zu verpeilt ist um diese Verpeiltheit als "nicht existent" zu betrachten... das war früher wohl mein Problem... ich war zu verpeilt um zu realisieren wie viel Verpeiltheit man in den Menschen allgemein berücksichtigen muss. Aber irgendwie waren die Lehrer auch zu verpeilt um meine eigene Verpeiltheit zu berücksichtigen, mit der ich scheinbar nicht in der Lage war, die Verpeiltheit der Menschen zu berücksichtigen, wodurch mir der Sinn von diesem ganzen private und public nicht klar werden konnte. Wahrnehmungsstörungen überall :)
das Stichwort "Hacker" was verpeilterweise mit der ganzen Problematik assoziiert werden könnte, sorgt wohl auch nur noch für mehr Verpeilung und Wahrnehmungsstörung.. genauso wie der Begriff "Virus" ... stimmts?
Das Ziel der Datenkapselung ist es, nach außen eine "Black Box" zu präsentieren, auf die nur über fest definierte Schnittstellen von außen zugegriffen werden kann. Dies ermöglicht die Garantie der Integrität und Validierung der Daten innerhalb dieser Black Box und somit die Fehlerfreiheit zumindest innerhalb derselben. Das hätte ich wohl im Video besser klarstellen sollen. Aber ein sehr amüsanter Kommentar, danke dafür :D
Solange Du für dich alleine programmierst, darfst Du wie ein Messi programmieren und so verpeilt sein, wie du willst. Du darfst z. B. deine Variablen/Funktionen/Prozeduren alle public machen und sie irgendwo fallen lassen. Völlig wie Du willst. In einer größeren EDV-Abteilung einmal eine Laufvariable *i* in einer For/Next-Schleife als public benutzt und dein *i* ist anschließend systemweit bekannt und für die übrigen 246 Programmierer in Zukunft gesperrt, wäre nicht so lustig. Dort wo professionell gearbeitet wird, gibt es aber noch viel weitreichendere Bestimmungen, die zu deinem Arbeitsvertrag gehören und an die Du gebunden bist, wenn Du dort arbeiten möchtest. Dein Code muss sich reibungslos in die übrige Firmensoftware einfügen und von anderen Programmierern gelesen und gepflegt werden können. Google zum Beispiel, ist nun wirklich keine rückständige Firma aus dem Mittelalter. Aber ließ dir mal deren Seitenlange Codeconventionen durch, die Du anerkennen *musst*, bevor Du dort auch nur eine Zeile programmieren darfst. Und das machen die nicht zum Spaß. Hier ein Beispiel für C++ von Google: google.github.io/styleguide/cppguide.html oder z. B. dieses PDF für C# von CodePlanet: www.codeplanet.eu/files/download/C%23%20Coding%20Style%20Guide.pdf
Sorry wollte den Author nicht nieder machen, der hat sich soviel Arbeit gemacht :-)), aber mir ist aufgrund der Ausführungen nicht klar, ob iman sich intensiv um das Thema manuelles Steuern der Garbage Collection kümmern muss, wenn man größere Anwendungen mit DB Zugriff schreiben will.
Vielen Dank für die konstruktive Kritik! Rückblickend muss ich zugeben, dass ich hier den Fokus auf ein in dieser Sprache nicht besonders relevantes Merkmal gelegt habe. Dieser Einschub kommt wahrscheinlich aus der Erfahurng mit der C++-Programmierung, bei der Speicherverwaltung ja ein großes Problem ist. Die Antwort lautet also: Nein, man muss sich nicht intensiv um Garbage Collection kümmern. Sofern Wrapper auf native Schnittstellen vorkommen (wie beim Datenbankzugriff), wird diese für gewöhnlich erfolgreich von der Wrapperklasse vor dem Programmierer "versteckt".
Vielen Dank für das Lob!!! Das motiviert echt sehr!
Es geht weiter, sobald die Schule nach dem Schulbeginn wieder in geordneten Bahnen verläuft und alle anderen Freizeitaktivitäten geregelt sind.
Wenn ein, zum Zeitpunkt des Videos, 14 Jähriger (hoffe das stimmt so :P) C# besser erklärt als ein Dozent welcher mehrere Programmiersprachen schreibt und behauptet ein "Virtuoser, gar eine Koryphäe der Programmier-Kunst" (Seine Aussage) zu sein,
kann ich nur meinen Hut ziehen! Vielen Dank für die ganze C# Video Reihe, rettest mir gerade meinen allerwertesten so kurz vor der Prüfung zum FISI!
Vielen Dank für das Kompliment. Ich bin froh, dass ich dir weiterhelfen konnte! Und viel Erfolg bei der Prüfung.
Von mir auch ein großes Lob =) Hatte C/C++ im Studium und wollt mal was neues lernen und das geht echt fix und macht Spaß mit deinen Tutorials. Find auch nicht, dass es zu schnell ist. Wenn man mal länger braucht kann man ja einfach stop drücken o.o find ich angenehmer als wenn immer ewig lange Pausen im Video wären
konnte durch deine tuts schon eniges dazulernen und mein Wissen vertiefen danke dafür!
uff 45 Minuten schauen, 45 Minuten verstehen. Echt zeitaufwendig dieses Unterthema, aber hab denke ich jetzt das wichtigste verstanden aus teil 1 :) Krass was du damals alles schon wusstest!
Hey, mir ist es aus irgendeinem Grund nicht möglich das Gewicht in programm.cs zu verändern(27:30). Ich hab alles so gemacht, wie gezeigt... Weiß jemand weiter?
+Karl Becker Kann es mit dem Fehler zu tun haben, den René Priem angesprochen hat? Irgendwo habe ich anscheinend mal in einem Getter eine falsche Variable zurückgegeben. Ansonsten kannst du gerne mal den Code posten.
Turing Informatik Danke für den Tipp :) Jap, hast du, konnte es jetzt korrigieren
Du meinst, einen WCF-Service, der irgendwelche Zeichenfolgen empfängt, in einer Datenbank speichert und dann per Push weiterschickt?
Julian Aßmann Noch eine Frage, was heißen die Angaben "value" und "void", dies konnte ich leider nicht im Tutorial finden. Trotzdem großes Lob, ich kann jetzt schon ein richtigen Taschenrechner (mit automatischer Erkennung von +,-,* und / in der Aufgabe) programmieren und das schon nach einem Tag, nachdem ich angefangen habe mich damit zu befassen.
value (deutsch: Wert) ist ein Wert, der in den Eigenschaften automatisch verfügbar gemacht wird. Die Eigenschaften sind also quasi Methoden, denen (für den Programmierer unsichtbar) ein Wert namens value übergeben wird. Beispiel: Du hast eine Klasse mit der int-Eigenschaft X und ein Programmierer erstellt eine Instanz (namens myClass) der Klasse und setzt die Eigenschaft mit myClass.X = 10;. Dadurch wird dein Set-Accesor aufgerufen und als value wird 10 übergeben (siehe ab 9:53 im Video).
void erkläre ich im Methoden-Video genauer. void (deutsch: leer) bedeutet einfach nur, dass eine Methode keinen Wert zurückliefert.
Ich wünsche dir weiterhin viel Spaß, wenn nochmal Fragen auftreten, einfach Fragen!
Viele Grüße,
GCT
Bis jetzt alles klar bis auf eine Unklarheit:
Wenn in der Accesor-Methode die Anweisung ausgeführt wird, heißt das normalerweise der Wert von wird an die Methode
+Jürgen Hoffmann Nein, nach return ist immer Schluss. Du kannst natürlich trotzdem sinnvoll mehrere returns in einer Methode haben, wenn du sie z. B. mit if-Abfragen trennst. Allerdings bezieht sich dein Verständnisproblem, soweit ich das richtig verstehe, auf etwas anderes. Die Eigenschaft Alter besteht quasi aus zwei Methoden, einmal der Get- und der Set-Methode, und ist nicht selbst eine. Das heißt, ein return im Get-Accessor hat keinen Einfluss auf den Set-Accessor und umgekehrt.
Ich hoffe, ich habe deine Frage beantwortet, ansonsten einfach nochmal schreiben :-)
+Turing Informatik Thx für die Antwort.
Ich kann es mir dann nur so erklären, daß entweder Get oder Set aufgerufen wird, abhängig davon ob lesend oder schreibend zugegriffen wird.
Denn beide gehen nicht, da bei Get die return-Anweisung ausgeführt wird, und im Code Set erst nach Get steht.
Ähnlich wie bei einer Case-Anweisung ...
Liege ich richtig ?
Danke für das Lob!
Meinst du damit, dass du ein Programm mit Multithreading auf einem Server laufen lassen willst?
Auf Basis der Kenntnisse von der Konsolenprogrammierung kann man dann doch die Windows Forms oder Universalanwendungen schreiben oder?
Mehr oder weniger ja. Bei beiden UI-Plattformen sind natürlich noch zusätzliche Kenntnisse über die verwendeten Klassen notwendig. Bei Windows Forms ist das sehr leicht durch ein bisschen Ausprobieren und Googlen herauszubekommen (ein Button ist z. B. durch die Klasse System.Windows.Forms.Button repräsentiert, Überraschung) und dort unterstützt einen der Designer in Visual Studio durch Drag&Drop, bei WPF/Universal Apps muss man auch die Oberflächenbeschreibungssprache XAML lernen (das wird in den entsprechenden Tutorials aber auch behandelt und ist nicht so wahnsinnig schwer ;)). Abgesehen davon ist C# eben immer C#.
Ok danke :) Ich sehe ja du hast schon ein Tutorial zu Windows 10 Universalanwendungen gemacht, laufen die eigentlich auch auf anderen Windowsversionen?
Kurze Frage: Dient das Dispose in welches du "Datenbank freigeben" kommentiert hast zur Sicherheit vor debuggern? Also dass man nicht so einfach etwas abgreifen kann?
Nein, Debugger geben ja den ursprünglichen Quellcode aus dem Binärcode des Programms, aber nicht die Daten, die damit verarbeitet werden. Baut ein Programm eine Verbindung zu einer Datenbank auf, muss diese am Ende der Sitzung wieder freigegeben werden. Genau das gleiche gilt für normale Dateien oder jede andere Form von Ressource, die das Programm benutzen kann. Da diese Ressourcen ja meist von Klassen verwaltet werden, die den Zugriff managen, nutzt man deren Destruktor, um die Ressource freizugeben, sobald sie nicht mehr benötigt wird.
Ist "value" in dem Fall nun ein Name oder ein bestimmter Dateityp?
"value" ist quasi ein unsichtbarer Parameter, der bei jeder Eigenschaft übergeben wird. Dieser hat immer den Datentyp der Eigenschaft (also bei einer int-Eigenschaft den Datentyp int) und als Wert beinhaltet value den Wert, den der Programmierer setzen will. Wenn du also z. B. eine Eigenschaft der Klasse Button setzen willst, sagen wir die Eigenschaft "Text", und du schreibst button1.Text = "Hallo Welt"; dann wird in der Klasse Button die Eigenschaft "Text" aufgerufen und dieser ein (unsichtbarer) Parameter namens "value" mit dem Wert "Hallo Welt" übergeben.
Eine Eigenschaft ersetzt also quasi Methoden, die die Werte zurückgeben oder setzen (in C++ macht man das so). Bei einer Setz-Methode müsste ja auch der Wert, auf den die Variable gesetzt werden soll, übergeben werden, bei Eigenschaften passiert das im Hintergrund.
Ich hoffe, das war verständlich, und weiterhin noch viel Spaß!
GermanCsharpTutorial
Jap, wie immer super erklärt, danke! :D
Hallo, also ich komme von Visual Basic. Da hat mein ein ReadOnly Property. Und hier? Gibt es nicht? Man schreibt nur ein get. Also gegenüber VB gefällt die Kürze und Schlichtheit. Die Klammern sind halt....
Readonly gibt es auch bei C#, aber auch wenn es das gleiche Ergebnis ist, entspricht es streng genommen nicht den Regeln der OOP.
Ergänzung: Mit der umständlicheren Umsetzung kannst du die Variable innerhalb der Klasse setzen, nur von außen nicht.
Turing Informatik Ja. Also VB kenne ich. C# baut ja auch nur auf dem Framework auf. Aber ich hab mir doch lieber mal ein Buch bestellt. VB ist viel schreiben. C# fasst es zusammen. Ich wollte immer das Code die geringste mögliche Kürze hat.
Dieses Buch habe ich mir nun einfach bestellt:
bei Amazon:
Einstieg in Visual C# 2013: Ideal für Programmieranfänger geeignet. Inkl. Windows Store Apps (Galileo Computing) Broschiert - 12. Dezember 2013
von Thomas Theis
Super Arbeit!!!
Gut erklärt und mit verständlichen Beispielen erläutert.
Doch kleines Manko gibts,
auch wenn das Thema natürlich etwas umfangreicher ist als in den vorrangegangenen Videos,
so bist du doch etwas zu schnell.
Man hat das gefühl als musst u as ma ebend runter ballern. ^^
Vieles errinnert natürlich an Cpp und wenn man da natürlich schon etwas Erfahrung hat kommt man je nach Erfahrungslevel mit dir mit.
Aber ein ist sicher. Gefällt mir!
Man lernt was und du kommst sehr menschlich rüber.
Das macht immer lust auf mehr.
*Weiter So.*
Danke für die Kritik! Ich versuche, das das nächste Mal zu beachten.
Wann kommen noch mehr Tutorials :D ? Habe gesehen du liest dir die aktuellen Kommentare noch durch. Würde mich freuen mehr von dir sehen zu dürfen :)
ich habe genau das gleiche wie etwa bei minute 14... und hab 27 fehler, wtf? gab es ein update, bei dem daran herumgeschraubt wurde?
Hi ;)
Du kannst mir gerne deinen Code schicken und ich schaue ihn mir mal an!
Kann irgendwer mir sagen, wie ich ein Programm schreibe, dass Arabische in Römische Zahlen umwandelt? (C#)
mit der rechenmethode % würde es leicht klappen.
Wird in einem vorherigem video erklärt.
also ich wil das mehr so umsetzten das der client an server eine speicheraddresse schickt und der server es den an alle anderen clients weiter schickt und die verarbeiten das den
wieso returnst du gewicht im Getter von Größe? :D
René Priem :-D Fehler im Video
Ich versuche seit gestern, mich in C# einzuarbeiten. Bis auf Schulinformatik habe ich auch kaum Erfahrung. Die bisherigen Tutorials fand ich auch alle sehr gut verständlich und die haben mir auch sehr geholfen. Das hier ging mir aber ein wenig sehr schnell (was vermutlich auch daran liegt, dass das Thema sehr groß ist).
Beispielsweise habe ich auch nach mehreren Malen nicht genau verstanden, wie das mit dem Stack und Heap Speicher funktioniert. Der Stack beinhaltet die Instanzen der Klasse Mensch? Aber die zugehörigen Variablen sind im Heap und es gibt Verweise dazwischen? Und wo steckt jetzt die Klasse selbst, die Blaupause von der die Instanzen gemacht werden?
Auch das mit dem ref, out und param ging mir etwas schnell. Hab' ich es richtig verstanden, dass man die nur bei statischen Methoden braucht? Wäre deine Methode (Ändern) nicht statisch gewesen, hätte es dann ohne ref funktioniert? Gut, das kann ich ja auch selbst gleich noch ausprobieren. Try and Error...^^
Dazu kam dann noch die Methode foreeach, die noch nicht behandelt wurde. Okay, aber die Funktionsweise kann man sich auch ungefähr denken, wenn man weiß, was ein Array ist. Die kamen allerdings noch nicht vor. Soweit ich mich erinnere, werden Arrays doch so deklariert und initialisiert (als Beispiel) int a = [0,1,2,3] oder so ähnlich. Auf jeden Fall so, dass irgendwelche Klammern oder eine Funktion darum ist, die zeigt, dass es sich um ein Array und handelt. In deiner Methode Ändern standen aber einzelne parameter getrennt durch Kommata, obwohl doch deine Funktion Ändern ein Array gefordert hat (also bei der Erklärung für param). Wieso konnte das funktionieren? Also wieso mussten beim Aufruf von Ändern keine Klammern um die Zahlenfolge gesetzt werden?
Ich hoffe, jemand kann mich hier erleuchten^^
Gutes Video. Ich habe eine Frage: Ich verstehe diese Return etc nicht.Bzw. ich verstehe es aber finde es überflüssig. Bei Visual Basic, gibt es das auch. Aber z.B. ich setze eine Variable "Alter" -> int Alter=30; oder VB Dim Alter as integer. Dann ist es einfach. Wenn ich das Alter will, dann mache ich xx = Alter. Wenn ich das Alter setzen will, dann Alter=xx. Basta :) Wenn ich das Alter nicht veränderbar will, dann schreibe ich Const Alter as integer. Dann ist es Read only. Ist ja einfach. Wieso all diese voids und returns und functions ? Gruss
Hi,
erstmal danke für das Lob.
Methoden sind aus verschiedener Sicht sinnvoll. Erstens ersparen sie einem das mehrfache Schreiben desselben Codes, sollte dieser an verschiedenen Stellen benötigt werden. Zweitens kann der Code so leichter in anderen Projekten wiederverwendet werden. Drittens müssen Wartungen nur noch an einer zentralen Stelle vorgenommen werden, man muss nicht 100 Mal den gleichen Code suchen und ändern. Viertens wird so der Code lesbarer (vorausgesetzt, man benamt die Funktionen entsprechend ihrer Funktion ;)). Statt eines komplizierten Algorithmus' direkt im Code steht dann der Name des Algorithmus mit ein paar Parametern da, die konkrete Implementierung desselben verwirrt also nicht beim Durchlesen des Codes. Wer sich für die Implementeriung interessiert, kann ja dann immer noch nachschauen. Fünftens wird dadurch erst die Zuordnung von Code zu Objekten/Klassen möglich - das spielt aber nur bei der objektorientierten Programmierung eine Rolle. (Sechstens: Rekursion ist so deutlich einfacher zu implementieren).
Kurz: Der Mehraufwand ist mehr als gerechtfertigt.
LG
hey leider funktioniert der download link nicht mehr vom buch.. kannst du es mir bitte so irgendwie zukommen lassen? danke und echt super video!
Hallo,
der Verlag musste seinen Namen aus rechtlichen Gründen ändern und heist jetzt Rheinwerk Verlag, deshalb sind jetzt alle Links nichtig. Ich werde das jetzt mal aktualisieren, aber hier erst mal der Link: openbook.rheinwerk-verlag.de/visual_csharp_2012/. Eine Übersicht von allen Openbooks findest du unter www.rheinwerk-verlag.de/openbook/, von da kannst du auch das Buch als gezippte Sammlung von HTML-Dokumenten downloaden.
Viel Spaß!
Beste c# tutoriels mach weiter so :) machst du noch mal was mit server die multitreading unterstüzen was mit ?
Super Tutorial, habe mit den Grundlagen für C gestartet und hatte somit einen einfachen einstieg. Mein Gehirn macht kaum noch mit aber mir geht es :
for(i=0, i
Naja, solange es nicht macht
bool verstanden = false;
do
{
versucheZuVerstehen(); // versucht verstanden auf true zu setzen
if verstanden
verstanden = false;
Gehirn.WriteLine("Schaue Tutorial nochmal") ;
} while (!verstanden)
Danke, echt gutes video.
Huch, ich hatte schon ganz vergessen, dass ich auch noch diese Videos habe :)
Schön, dass es dir auch noch nach den vielen Jahren geholfen hat!
Sehr hilfreich, top!
beschte ;D
Blerim Shqip ?
danke für die Hammer erklärung, hast du uns vllt dieses Programm oder den Quellcode?
so in der art wir sind ein kleines team was grad an ein multiplayer game arbeitet und wir wollen halt das überspeicheraddressen auslesen und an anderen weiter schicken der es den list und den in das game rein schreibt es funktioniert soweit alles prima bis auf das empfangen der datein :D
Sorry, aber ab dem Thema Garbage Collection (um Minute 39) wird über Destructoren geredet und wie man den Garbage Collection anspricht, aber die Beispiele und das erzähle tragen nicht zur erhellung bei. Muss mir dazu leider wohl doch noch andere professionellere Videos reintun. - Schade.
diese Datenkapselung setzt doch voraus, dass man völlige Verpeiltheit den Menschen unterstellt so dass man völlig verpeilter weise völlig verpeilten Programmieren zugriff auf dein eigenen Code gibt (wenn man selber besoffen ist vielleicht?) ... das setzt doch allgemein voraus, dass man nicht zu verpeilt ist um diese Verpeiltheit als "nicht existent" zu betrachten...
das war früher wohl mein Problem... ich war zu verpeilt um zu realisieren wie viel Verpeiltheit man in den Menschen allgemein berücksichtigen muss.
Aber irgendwie waren die Lehrer auch zu verpeilt um meine eigene Verpeiltheit zu berücksichtigen, mit der ich scheinbar nicht in der Lage war, die Verpeiltheit der Menschen zu berücksichtigen, wodurch mir der Sinn von diesem ganzen private und public nicht klar werden konnte.
Wahrnehmungsstörungen überall :)
das Stichwort "Hacker" was verpeilterweise mit der ganzen Problematik assoziiert werden könnte, sorgt wohl auch nur noch für mehr Verpeilung und Wahrnehmungsstörung.. genauso wie der Begriff "Virus" ... stimmts?
verpeiltception :D
Du meinst mit Hacker bestimmt Cracker, den die Hacker sind die guten.
Das Ziel der Datenkapselung ist es, nach außen eine "Black Box" zu präsentieren, auf die nur über fest definierte Schnittstellen von außen zugegriffen werden kann. Dies ermöglicht die Garantie der Integrität und Validierung der Daten innerhalb dieser Black Box und somit die Fehlerfreiheit zumindest innerhalb derselben. Das hätte ich wohl im Video besser klarstellen sollen.
Aber ein sehr amüsanter Kommentar, danke dafür :D
Solange Du für dich alleine programmierst, darfst Du wie ein Messi programmieren und so verpeilt sein, wie du willst. Du darfst z. B. deine Variablen/Funktionen/Prozeduren alle public machen und sie irgendwo fallen lassen. Völlig wie Du willst.
In einer größeren EDV-Abteilung einmal eine Laufvariable *i* in einer For/Next-Schleife als public benutzt und dein *i* ist anschließend systemweit bekannt und für die übrigen 246 Programmierer in Zukunft gesperrt, wäre nicht so lustig. Dort wo professionell gearbeitet wird, gibt es aber noch viel weitreichendere Bestimmungen, die zu deinem Arbeitsvertrag gehören und an die Du gebunden bist, wenn Du dort arbeiten möchtest. Dein Code muss sich reibungslos in die übrige Firmensoftware einfügen und von anderen Programmierern gelesen und gepflegt werden können.
Google zum Beispiel, ist nun wirklich keine rückständige Firma aus dem Mittelalter. Aber ließ dir mal deren Seitenlange Codeconventionen durch, die Du anerkennen *musst*, bevor Du dort auch nur eine Zeile programmieren darfst. Und das machen die nicht zum Spaß. Hier ein Beispiel für C++ von Google:
google.github.io/styleguide/cppguide.html oder z. B. dieses PDF für C# von CodePlanet: www.codeplanet.eu/files/download/C%23%20Coding%20Style%20Guide.pdf
Schade dass das so konzeptlos / kaotisch ist, das Thema wäre sehr interessant.
Hey wir haben auch einen Discord Server wenn ihr wollt könnt ihr gerne reinkommen
discord.gg/AYKcWBsaJE
Sorry wollte den Author nicht nieder machen, der hat sich soviel Arbeit gemacht :-)), aber mir ist aufgrund der Ausführungen nicht klar, ob iman sich intensiv um das Thema manuelles Steuern der Garbage Collection kümmern muss, wenn man größere Anwendungen mit DB Zugriff schreiben will.
Vielen Dank für die konstruktive Kritik! Rückblickend muss ich zugeben, dass ich hier den Fokus auf ein in dieser Sprache nicht besonders relevantes Merkmal gelegt habe. Dieser Einschub kommt wahrscheinlich aus der Erfahurng mit der C++-Programmierung, bei der Speicherverwaltung ja ein großes Problem ist. Die Antwort lautet also: Nein, man muss sich nicht intensiv um Garbage Collection kümmern. Sofern Wrapper auf native Schnittstellen vorkommen (wie beim Datenbankzugriff), wird diese für gewöhnlich erfolgreich von der Wrapperklasse vor dem Programmierer "versteckt".
Schlampig vorgetragen.
Klasse Tutorials! Dich würde ich als mein Informatiklehrer haben wollen um ehrlich zusein! :D
Danke, das freut mich. Rückblickend gibt es zwar einiges zu verbessern, aber es ist schön, dass die Videos immer noch Menschen helfen ;)
danke aber nicht gärbage collector sondern garbage collector hahaha
Bist Du schon 12?