{"id":200,"date":"2010-11-20T17:55:09","date_gmt":"2010-11-20T16:55:09","guid":{"rendered":"http:\/\/www.steffen-liersch.de\/content\/de\/?p=200"},"modified":"2025-03-02T11:31:36","modified_gmt":"2025-03-02T10:31:36","slug":"component-constructors","status":"publish","type":"post","link":"https:\/\/www.steffen-liersch.de\/content\/de\/2010\/11\/component-constructors\/","title":{"rendered":"Komponenten-Konstruktoren"},"content":{"rendered":"<p>F\u00fcr die Erstellung nicht-visueller Komponenten f\u00fcr Windows Forms-Anwendungen kann die Klasse System.ComponentModel.Component als Basis verwendet werden.<!--more--><\/p>\n<p>Der Formulardesigner bevorzugt den Konstruktor mit der Signatur .ctor(IContainer container). Innerhalb dieses Konstruktors muss die Instanz (this) in den \u00fcbergebenen Container eingef\u00fcgt werden. Nur so wird sichergestellt, dass beim Freigeben eines Formulars die Komponente ebenfalls durch einen <a href=\"\/content\/de\/2010\/02\/net-dispose-pattern\/\">Aufruf der Dispose-Methode<\/a> freigegeben wird.<\/p>\n<p>Im Beispiel verwendet der zus\u00e4tzliche Konstruktor den Standardkonstruktor. Somit erfolgt die grundlegende Initialisierung der Komponente immer im Standardkonstruktor.<\/p>\n<pre><code class=\"cs\">public ExampleComponent()\r\n{\r\n  InitializeComponent();\r\n  \/\/ ...\r\n}\r\n\r\npublic ExampleComponent(IContainer container)\r\n  : this()\r\n{\r\n  if(container!=null)\r\n    container.Add(this);\r\n}<\/code><\/pre>\n<p>Ein Standardkonstruktor sollte generell vorhanden sein. Weitere geeignete Konstruktoren k\u00f6nnen bereitgestellt werden, um das manuelle Erzeugen von Instanzen besser zu unterst\u00fctzen. Generell ist bei Konstruktoren jedoch zu beachten, dass diese nicht vererbt werden. Abgeleitete Klassen m\u00fcssen die jeweils ben\u00f6tigten Konstruktoren immer explizit implementieren.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>F\u00fcr die Erstellung nicht-visueller Komponenten f\u00fcr Windows Forms-Anwendungen kann die Klasse System.ComponentModel.Component als Basis verwendet werden.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[21,25,15],"class_list":["post-200","post","type-post","status-publish","format-standard","hentry","category-net","tag-net","tag-cs","tag-components"],"_links":{"self":[{"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/posts\/200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/comments?post=200"}],"version-history":[{"count":14,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/posts\/200\/revisions"}],"predecessor-version":[{"id":550,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/posts\/200\/revisions\/550"}],"wp:attachment":[{"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/media?parent=200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/categories?post=200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/tags?post=200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}