{"id":2017,"date":"2010-02-05T17:47:35","date_gmt":"2010-02-05T16:47:35","guid":{"rendered":"https:\/\/acureus.com\/?p=2017"},"modified":"2010-02-08T14:27:56","modified_gmt":"2010-02-08T13:27:56","slug":"vb-net-eine-methode-stop-nennen","status":"publish","type":"post","link":"https:\/\/blog.acureus.com\/?p=2017","title":{"rendered":"[VB.Net] Eine Methode &#8222;Stop&#8220; nennen"},"content":{"rendered":"<p>&#8222;Stop&#8220; ist in <a href=\"http:\/\/de.wikipedia.org\/wiki\/VB.NET#2002.E2.80.932003:_Visual_Basic_.NET\">VB.Net<\/a> ein Schl\u00fcsselwort, das hei\u00dft es darf nicht als Bezeichner verwendet werden. Trotzdem findet man im .Net-Framework Klassen, die eine ihrer Methode &#8222;Stop&#8220; genannt haben, wie zum Beispiel die <a href=\"http:\/\/msdn.microsoft.com\/en-us\/magazine\/cc164015.aspx\">verschiedenen Timer-Klassen<\/a>.<br \/>\nAuch wenn dieses Problem eher exotisch ist, so habe ich mich doch gefragt, wie diese Klassen das tun k\u00f6nnen bzw. wie ich es selber tun kann. W\u00fcrde ich mit <a href=\"http:\/\/de.wikipedia.org\/wiki\/Csharp\">C#<\/a> programmieren, dann w\u00e4re alles kein Problem, da dort &#8222;Stop&#8220; kein Schl\u00fcsselwort ist. <!--more-->Wenn man es in VB.Net trotzdem versucht und &#8222;Stop&#8220; als Bezeichner verwendet, dann meldet der Compiler einen Fehler (logischerweise):<\/p>\n<blockquote><p>Keyword is not valid as an identifier.<\/p><\/blockquote>\n<p>Interessanterweise konnte auch Google mir hier nicht helfen. Vielleicht habe ich die falschen Suchbegriffe verwendet. Ich habe meine Methode dann &#8222;Stopp&#8220; genannt, also mit doppel-p. Ein paar Wochen sp\u00e4ter habe ich aber durch Zufall herausgefunden, dass die L\u00f6sung ganz einfach ist:<br \/>\nMan kann jedes Schl\u00fcsselwort in eckige Klammern setzen, dann wird daraus ein Bezeichner mit dem in den Klammern angegebenen Namen:<\/p>\n<p><code>Public Sub [Stop]()<br \/>\n    ' irgendwas tun<br \/>\nEnd Sub<\/code><\/p>\n<p>Das ist \u00fcbrigens auch der Grund, warum man beim Zugreifen auf die statischen Methoden der <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/system.enum.aspx\">Enum-Klasse<\/a> &#8222;[Enum].Methode()&#8220; schreiben muss (statt &#8222;Enum.Methode()&#8220;). Denn &#8222;Enum&#8220; ist auch ein Schl\u00fcsselwort. Das war mir lange Zeit suspekt, aber es ist wohl eine logische Konsequenz daraus, dass man ein Framework f\u00fcr mehrere Sprachen bereitstellt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8222;Stop&#8220; ist in VB.Net ein Schl\u00fcsselwort, das hei\u00dft es darf nicht als Bezeichner verwendet werden. Trotzdem findet man im .Net-Framework Klassen, die eine ihrer Methode &#8222;Stop&#8220; genannt haben, wie zum Beispiel die verschiedenen Timer-Klassen. Auch wenn dieses Problem eher exotisch ist, so habe ich mich doch gefragt, wie diese Klassen das tun k\u00f6nnen bzw. wie [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[440,543,542],"class_list":["post-2017","post","type-post","status-publish","format-standard","hentry","category-technik","tag-problem","tag-programmieren","tag-vb-net"],"_links":{"self":[{"href":"https:\/\/blog.acureus.com\/index.php?rest_route=\/wp\/v2\/posts\/2017","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.acureus.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.acureus.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.acureus.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.acureus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2017"}],"version-history":[{"count":11,"href":"https:\/\/blog.acureus.com\/index.php?rest_route=\/wp\/v2\/posts\/2017\/revisions"}],"predecessor-version":[{"id":2028,"href":"https:\/\/blog.acureus.com\/index.php?rest_route=\/wp\/v2\/posts\/2017\/revisions\/2028"}],"wp:attachment":[{"href":"https:\/\/blog.acureus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2017"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.acureus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2017"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.acureus.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}