{"id":55000017,"date":"2015-04-01T00:00:00","date_gmt":"2020-03-27T19:16:40","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=17"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Experimentieren_mit_der_Konsole","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Experimentieren_mit_der_Konsole\/","title":{"rendered":"Experimentieren mit der Konsole"},"content":{"rendered":"<p><b>Wenn Sie in die Programmierung mit C# einsteigen, werden Sie &#8211; genau wie wir in unseren Beitr&auml;gen &#8211; eine Menge ausprobieren wollen. Als Umsteiger von VBA haben Sie es da schwer: Unter VBA haben Sie zum Ausprobieren von Code einfach eine neue Prozedur in einem Standardmodul angelegt und diese dann mit F5 gestartet. In Visual Studio verwenden Sie zum Testen von Code zum Beispiel eine Konsolenanwendung. Verschiedene Prozeduren schreiben und mal eben aufrufen wie im VBA-Editor gelingt dort allerdings nicht. Wir zeigen Ihnen, wie Sie dennoch einigerma&szlig;en komfortabel experimentieren k&ouml;nnen.<\/b><\/p>\n<p>Eine Konsolenanwendung f&uuml;r C# unter Visual Studio reicht leicht aus, um sich in die Sprache einzuarbeiten. Das Experimentieren damit ist allerdings nicht ganz so einfach wie etwa im VBA-Editor, wo man fernab von Klassenmodulen auch noch Standardmodule zum Programmieren einfacher und sofort aufrufbarer Prozeduren zur Verf&uuml;gung hatte. Einfach die Prozedur eintippen, die Einf&uuml;gemarke auf der gew&uuml;nschten Prozedur platzieren, auf <b>F5 <\/b>dr&uuml;cken &#8211; los geht es.<\/p>\n<p>Unter C# wird aus den vorhandenen Klassen zun&auml;chst eine ausf&uuml;hrbare <b>.exe<\/b>-Datei erstellt, die dann aufgerufen wird. Diese <b>.exe<\/b>-Datei hat genau einen Einstiegspunkt, n&auml;mlich die Methode <b>Main <\/b>in der Klasse <b>Program.cs<\/b>. Wenn Sie also irgendwelche Codezeilen testen wollen, f&uuml;hrt kein Weg daran vorbei, die Konsolenanwendung zu kompilieren, die <b>.exe<\/b>-Datei zu erzeugen und diese zu starten. Gn&auml;digerweise bietet Visual Studio diese Schritte alle &uuml;ber <b>F5 <\/b>beziehungsweise den Men&uuml;eintrag <b>Debuggen|Debugging starten <\/b>an.<\/p>\n<p>Nun wollen wir aber vielleicht nicht nur eine Prozedur oder, um im C#-Sprachgebrauch zu bleiben, eine Methode verwenden, um unsere vielen Ideen auszuprobieren (und auch in unserer Beispielklasse zu verewigen).<\/p>\n<p>Wie also k&ouml;nnen wir unsere Beispiele in verschiedene Methoden auslagern und diese dennoch komfortabel testen Wir verwenden die Einstiegsmethode <b>Main <\/b>genau f&uuml;r diesen Zweck. Dazu f&uuml;gen wir ihr ein paar Zeilen Code hinzu, welche die verschiedenen Beispiele nach dem Start der Beispielanwendung in der Konsole auflisten &#8211; also beispielsweise wie in Bild 1.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2015_02\/pic_17_001.png\" alt=\"Anzeige der Beispielmethoden einer Klasse\" width=\"500\" height=\"230,3665\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Anzeige der Beispielmethoden einer Klasse<\/span><\/b><\/p>\n<p>Wenn der Benutzer nun eine der in den eckigen Klammern angegebene Zahlen eingibt und die Eingabetaste bet&auml;tigt, soll die entsprechende Funktion ausgef&uuml;hrt werden. Dies programmieren wir im einfachsten Fall so wie in Listing 1.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2015_02\/pic_17_001.png\" alt=\"Anzeige der Testfunktionen und deren Aufruf per Eingabe der entsprechenden Zahl\" width=\"500\" height=\"230,3665\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Anzeige der Testfunktionen und deren Aufruf per Eingabe der entsprechenden Zahl<\/span><\/b><\/p>\n<p>Diese Methode stellt zun&auml;chst einige Eigenschaften des Konsolen-Fensters ein &#8211; zugegebenerma&szlig;en haupts&auml;chlich, damit die Screenshots der Artikel in <b>DATENBANKENTWICKLER <\/b>nicht so dunkel daherkommen. Danach durchl&auml;uft die Methode die folgenden Anweisungen in einer <b>do<\/b>-Schleife &#8211; und zwar so lange, bis die <b>String<\/b>-Variable <b>methodeNummer <\/b>keine leere Zeichenfolge enth&auml;lt.<\/p>\n<p>Diese Variable nimmt die Benutzereingabe nach der Anzeige der verf&uuml;gbaren Beispiel-Methoden entgegen, also die Nummer der auszuf&uuml;hrenden Methode. Diese Nummern werden samt Methodenname und einer kurzen Beschreibung durch die ersten Anweisungen innerhalb der <b>do<\/b>-Schleife ausgegeben. Nach der Eingabe etwa der Zahl <b>1 <\/b>f&uuml;r die erste Methode pr&uuml;ft die Prozedur in einer <b>switch<\/b>-Bedingung den Wert von <b>methodeNummer<\/b>. Im Falle der Zahl <b>1 <\/b>landet diese im ersten <b>case<\/b>-Zweig und ruft die Methode <b>Test1() <\/b>der Klasse <b>Beispiele <\/b>auf.<\/p>\n<p>F&uuml;r die Beispiele legen Sie also dementsprechend eine eigene Klasse namens <b>Beispiele<\/b> an und f&uuml;gen dort die gew&uuml;nschten Methoden wie in Listing 2 ein. Die Methoden m&uuml;ssen Sie mit den Schl&uuml;sselw&ouml;rtern <b>public static <\/b>versehen, damit Sie diese ohne Instanzieren eines Objekts auf Basis der Klasse aufrufen k&ouml;nnen. Die Methoden enthalten lediglich eine einfache <b>Console.WriteLine<\/b>-Anweisung, die Letzte gibt einen <b>integer<\/b>-Wert zur&uuml;ck.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2015_02\/pic_17_001.png\" alt=\"Beispiel f&uuml;r eine Klasse mit Testprozeduren\" width=\"500\" height=\"230,3665\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Beispiel f&uuml;r eine Klasse mit Testprozeduren<\/span><\/b><\/p>\n<p>Was ist zu tun Um neue Beispielmethoden schnell auszuprobieren und die vorhandenen Beispiele ebenfalls im schnellen Zugriff zu haben, m&uuml;ssen Sie also neben einer neuen Methode zwei Dinge erledigen: das Hinzuf&uuml;gen einer <b>Console.WriteLine<\/b>-Anweisung zu Beginn der <b>do<\/b>-Schleife der Methode <b>Main <\/b>sowie eines neuen Zweiges in der <b>switch<\/b>-Bedingung.<\/p>\n<h2>Geht es auch weniger aufwendig<\/h2>\n<p>Nachdem ich auf diese Weise einige Beispielmethoden erstellt und &uuml;ber die <b>Main<\/b>-Methode startbereit gemacht habe, stellte ich fest, dass dies doch immer einige Schritte sind. Am sch&ouml;nsten w&auml;re es doch, wenn man einfach nur die neue Beispielmethode anlegen und diese dann einfach in der Liste der Beispielmethoden in der Konsole vorfinden w&uuml;rde. Das hei&szlig;t also, dass wir irgendwie dynamisch auf die Methoden zugreifen m&uuml;ssen. Unter VBA h&auml;tte man mit den Methoden der Objektbibliothek <b>Microsoft Visual Basic Extensibility 5.3 Object Library <\/b>auf den Quellcode der Beispielmethoden zuzugreifen und so per VBA den Code zu generieren, der f&uuml;r den Aufruf der Methoden n&ouml;tig ist. Nun wissen wir ja bereits, dass man einfache Routinen in Standardmodulen unter VBA einfach so aufrufen kann, weshalb dieser Aufwand gar nicht n&ouml;tig ist.<\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000017\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000017?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000017\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"fe62152232\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn Sie in die Programmierung mit C# einsteigen, werden Sie &#8211; genau wie wir in unseren Beitr&auml;gen &#8211; eine Menge ausprobieren wollen. Als Umsteiger von VBA haben Sie es da schwer: Unter VBA haben Sie zum Ausprobieren von Code einfach eine neue Prozedur in einem Standardmodul angelegt und diese dann mit F5 gestartet. In Visual Studio verwenden Sie zum Testen von Code zum Beispiel eine Konsolenanwendung. Verschiedene Prozeduren schreiben und mal eben aufrufen wie im VBA-Editor gelingt dort allerdings nicht. Wir zeigen Ihnen, wie Sie dennoch einigerma&szlig;en komfortabel experimentieren k&ouml;nnen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66022015,662015,44000005],"tags":[],"yst_prominent_words":[],"class_list":["post-55000017","post","type-post","status-publish","format-standard","hentry","category-66022015","category-662015","category-Tipps_und_Tricks"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000017","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000017"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000017\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000017"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000017"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000017"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}