Visual C# 2012 Grundkurs

Partial Classes

Testen Sie unsere 1982 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Es besteht die Möglichkeit, eine Klasse über zwei oder mehrere Quellcode-Dateien zu definieren. Dadurch wird sichergestellt, dass der Code übersichtlich strukturiert ist.

Transkript

In diesem Abschnitt möchte ich Ihnen das Konzept der Partial Classes vorstellen. Um das zu zeigen, starte ich in neues Projekt. Ich nehme aus gutem Grund hier eine "Windows Forms Application". Das wird eine Applikation mit einer GUI mit einer grafischen Benutzeroberfläche. Ich habe hier so eine Form. Das wird dann das sein, was unsere Applikation anzeigt. Diese Form ist ja nichts anderes als eine Klasse. Ich kann hier z.B. mit "View Code" in diese Klasse reingehen und sagen wir mal so das ist ja doch sehr übersichtlich, dieser Code hier. Also für das, was da schon alles an Bildschirm zu sehen ist. Ich starte mal die Applikation. Da ist also schon eine Menge Zeug zu sehen, mit diesem Rahmen und diesen ganzen Buttons usw. Wenn ich jetzt noch einmal in den Designer gehe, kann ich hier irgendwelche Elemente unterbringen, z.B. hier einen Button, eine Textbox, muss ich mal suchen gehen, wo die sind, da kann ich jetzt irgendwelchen Text eingeben. Wenn ich die Applikation starte, dann ist dieses Zeug auch gleich sichtbar. Jetzt gucken wir uns noch einmal den Code an von dieser Klasse. Und siehe da, es ist immer noch nichts zu sehen. So fragt man sich: Wo ist jetzt eigentlich dieser ganze Code? Wahrscheinlich ist er hier in dieser Methode "InitializeComponent" versteckt. Und jetzt ist halt die Frage: Wo befindet sich dieses "InitializeComponent"? Also gehe ich hier mit der rechten Maustaste drauf und sage "go to definition". Es ist vielleicht ganz gut, wenn Sie sich hier die F12-Taste als Kurztaste merken die bringt Sie nämlich überall hin, wo Sie den Cursor gerade draufhaben. Also Cursor auf den Klassennamen stellen, F12 drücken und Sie sind da. Das ist die "InitializeComponent"-Methode. Und jetzt sehe ich das, was ich eigentlich erwartet habe, nämlich das irgendwo Buttons und die Textbox, dass das Zeug irgendwo angelegt und initialisert wird. Genau das passiert in InitializeComponent. Jetzt ist natürlich die Frage: Wo bin ich hier eigentlich? Und siehe da, ich bin in einer Klasse "Form1". Und die hat dieses wunderschöne Schlüsselwort "partial" da vorne. Und das ist auch das Geheimnis der ganzen Geschichte. Ich gehe noch einmal zurück. Auch hier wird die Klasse "Form1" definiert. Und das ist einfach der andere Teil. Das Schlüsselwort "partial" sagt mir, dass ich hier einen Teil der Klasse "Form1" definiere. Und damit kann ich also auch wiederum mit dem Schlüsselwort "partial" andere Teile in anderen Dateien unterbringen. Und genau das ist hier passiert. Diese Datei hier heißt "Form1.cs" und dann gibt es eine zweite Datei die heißt "form1.designer.cs". Und die beiden enthalten jeweils einen Teil der Klasse. Um das jetzt nochmal völlig klar zu machen: Wir können so etwas natürlich selber machen. Also ich kann jetzt hier eine neue Klasse anlegen und sage jetzt z.B. die soll heißen "TestClass". Das ist jetzt meine "TestClass" hier und die definiere ich als "partial" und dann hier sehen Sie ist die Datei "TestClass.cs" angelegt worden und jetzt kann ich hergehen und kann sagen "OK" - "TestClass.part2.cs". Das wird der zweite Teil meiner Klasse. Und siehe da... Was macht mir jetzt das Visual Studio? Es legt mir jetzt nochmal diese TestClass an. Und das muss ich jetzt eigentlich nur noch um das Schlüsselwort "partial" ergänzen. Und jetzt habe ich zwei Teile. Eine in TestClass.cs und eine in TestClass.part2.cs. Und jetzt kann ich da irgendwelche Methoden definieren. Also, in diesem Teil will ich z.B. die Methode "Foo" definieren. Jetzt gehe ich rüber zu der anderen Definition und kann hier eine andere Methode definieren. Das ist jetzt "Bar". Und jetzt kann ich irgendwo in den anderen Kontext reingehen und kann sagen: TestClass tc = new TestClass." Hier kann er sich ein neues Objekt für diese Klasse anlegen. Dieses Objekt kann ich jetzt nutzen. Und siehe da: Das System zeigt mir jetzt beide Methoden an, obwohl in zwei unterschiedlichen Source Code Files definiert sind. Ich kann also beide Methoden hier nutzen, und ich kann rekompilieren, und der Compiler sagt mir: "succeeded", er nimmt das also an. Die Frage ist jetzt natürlich: Wozu kann man so was brauchen? Das kommt schon vor, und man hat in Visual Studio dann auch die Möglichkeit diese Teildateien, die jetzt hier nebeneinander liegen, in so einer Form wie hier zu schachteln. Diese Möglichkeit gibt es. Ich habe mal ein Tool geschrieben für objektrelationales Mapping, und dieses Tool nutzt auch genauso eine Geschichte. Ich gebe hier in so einem kleinen Wizard den Namen für eine neue Klasse an, die von diesem Tool erzeugt werden soll die habe ich "Persistent Class" genannt. Der Compiler meckert jetzt hier natürlich, weil er diese ganzen Geschichten hier nicht kennt, diese ganzen NDO-Geschichten. Aber man sieht, es ist eine Partial Class diese Persistent Class und dieses Tool hat es geschafft, hier einen zweiten Teil der Implementierung einzusetzen. Da wird dann ein Interface implementiert, so eine rohe Implementierung von diesem Interface. Die wird dann hier versteckt, damit man hier einen sauberen Code hat, mit dem man bestimmte Dinge definieren kann und sich um dieses Interface überhaupt nichtscheren muss. Es gibt also die Möglichkeit, diese verschiedenen Teile der Klassen so zu schachteln wie hier: Wenn Sie daran interessiert sind, müssen Sie einfach mal googeln nach der Möglichkeit, wie man so etwas bewerkstelligen kann. Im Augenblick sieht es so aus: Sie werden möglicherweise nicht gleich ganz am Anfang Ihrer Karriere als C#-Entwickler diese Möglichkeit der Partial Classes selbst brauchen, also dass Sie selbst Partial Classes anlegen und die dann irgendwie schachteln im Solution Explorer. Aber es ist für Sie vielleicht ganz gut zu wissen, dass es das gibt, um solche Phänomene zu verstehen: dass Sie irgendwo eine Klassen-Definition haben und da passieren Sachen in dieser Klasse; oder Sie haben Methoden zur Verfügung, von denen Sie nicht wissen, woher das Zeug eigentlich kommt und dann wird es Zeit nach diesem "partial" Schlüsselwort zu schauen. Wenn das auftaucht, dann ist es die Erklärung für die Geschichte. Soweit zum Schlüsselwort "partial".

Visual C# 2012 Grundkurs

Schreiben Sie eigene Programme in C# und lernen Sie dazu alle Schlüsselwörter und die meisten Konstrukte kennen, um sicher mit dieser Programmierspreche umzugehen.

7 Std. 1 min (44 Videos)
Sehr gut
DHBW-Stuttgart

Ich bin erfahrener Java Entwickler und nutze hauptsächlich Eclipse. Beim Lernen von C# in Visual Studio haben mir Ihre Videos sehr geholfen. Dankeschön! Mirko Matytschak kann gut erklären und ich wünschte ich hätte zu Beginn meiner IT-Karriere schon von Menschen wie Sie als Lehrer gehabt. Zwar war für mich in dem Kurs nichts neues dabei, außer wie hier die partial Classes, allerdings gefällt mir, dass sie beipsielsweise zu Beginn des Kurses eine Übersicht hatten, für welche Personengruppen der Kurs geeignet ist (Anfänger, Erfahren,...). Schön ist auch, dass Sie alle Einzelheiten und Eigenschaften des Codes und der Strukturen erklären, da man davon ausgehen muss, dass der Zuschauer oft unerfahren ist und Detailwissen nicht hat, das zum Verständnis viel beitragen würde. Außerdem ist es gut, dass Sie Tricks wie die Shortcuts ansprechen. Es gab wenige Makel, wie dass Sie die null-referenz bitte wie englisch "null" und NICHT wie die deutsche Null aussprechen sollten, da somit der Unterschied zwischen null und Null klar wird. Der null-pointer muss ein klarer Begriff sein. Aber wie gesagt, das sin Kleinigkeiten. Der Kurs lohnt und Mirko Matytschak ist ein sehr guter Dozent / Referent. Er nimmt den Zuschauer an die Hand und beantwortet aufkommende Fragen schon vorweg und umfassend.

 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!