{"id":55000284,"date":"2021-08-01T00:00:00","date_gmt":"2021-12-31T14:21:40","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=284"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Typumwandlung_unter_VBNET","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Typumwandlung_unter_VBNET\/","title":{"rendered":"Typumwandlung unter VB.NET"},"content":{"rendered":"<p><b>Unter VB.NET gibt es verschiedene M&ouml;glichkeiten, den Typ von Variablen umzuwandeln. Dieser Artikel erl&auml;utert den Unterschied zwischen impliziter und expliziter Typumwandlung, die Bedeutung von Option Strict, die verschiedenen Typumwandlungsfunktionen wie CBool und die Methoden der Convert-Klasse. Au&szlig;erdem gibt es noch flexible Umwandlungsfunktionen wie CType, DirectCast oder TryCast &#8211; auch diese schauen wir uns genauer an.<\/b><\/p>\n<p>Visual Basic.NET bietet sehr viele verschiedene Datentypen. Manchmal m&uuml;ssen Sie Inhalte von einem zum anderen Datentyp konvertieren. Wie das gelingt, zeigen die folgenden Abschnitte.<\/p>\n<h2>Implizite Typumwandlung<\/h2>\n<p>Die implizite Typumwandlung erfolgt bei der Zuweisung eines Wertes oder eines Objekts zu einer Variablen. Diese Typumwandlung gelingt jedoch nur, wenn der umzuwandelnde Datentyp ein niederwertiger Datentyp ist und der Zieldatentyp ein h&ouml;herwertiger Datentyp. Das bedeutet zum Beispiel, dass alle Datentypen in den Typ <b>Object <\/b>umgewandelt werden k&ouml;nnen, da dieser der oberste Datentyp in der Hierarchie der Datentypen ist. Die nachfolgenden Beispiele liefern g&uuml;ltige Zuweisungen, da der Zieldatentyp jeweils <b>Object <\/b>ist:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>objInteger<span style=\"color:blue;\"> As Object<\/span>\r\nobjInteger = 10\r\n<span style=\"color:blue;\">Dim <\/span>objKunde<span style=\"color:blue;\"> As Object<\/span>\r\nobjKunde = <span style=\"color:blue;\">New<\/span> Kunde<\/pre>\n<p>F&uuml;r die Zuweisung eines neuen <b>Object<\/b>-Elements zur Objektvariablen des Typs <b>Kunde <\/b>wie in der folgenden Anweisung gelingt das nicht:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>objKunde2<span style=\"color:blue;\"> As <\/span>Kunde\r\nobjKunde2 = <span style=\"color:blue;\">New<\/span> Object<\/pre>\n<p>Hier erhalten wir eine Fehlermeldung (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_04\/pic_284_001.png\" alt=\"Fehler beim Zuweisen von Object zu einem anderen Objekttyp\" width=\"599,6265\" height=\"265,4951\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Fehler beim Zuweisen von Object zu einem anderen Objekttyp<\/span><\/b><\/p>\n<h2>Anzeige von ung&uuml;ltigen Zuweisungen per Option aktivieren<\/h2>\n<p>Sie k&ouml;nnen solche Fehler schon vor dem Ausf&uuml;hren ausschlie&szlig;en. Dazu stellen Sie einfach eine spezielle Option namens <b>Option Strict <\/b>auf den Wert <b>On <\/b>ein. Diese finden sie, wenn Sie im Projektmappen-Explorer doppelt auf den Eintrag <b>My Project <\/b>klicken und dort zum Bereich <b>Kompilieren <\/b>wechseln. Hier finden Sie im Bereich <b>Kompilierungsoptionen<\/b> die Eigenschaft <b>Option Strict<\/b>, die wir auf den Wert <b>On<\/b> einstellen (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_04\/pic_284_002.png\" alt=\"Einstellungen f&uuml;r das Kompilieren\" width=\"700\" height=\"602,3572\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Einstellungen f&uuml;r das Kompilieren<\/span><\/b><\/p>\n<p>Damit sorgen wir daf&uuml;r, dass fehlerhafte Zuweisungen bereits im Codefenster angezeigt werden. Fahren Sie mit der Maus &uuml;ber einen entsprechend markierten Ausdruck, zeigt dieser das Problem an (siehe Bild 3). Hier sehen Sie weiter unten auch eine Markierung einer nicht g&uuml;ltigen Konvertierung von <b>Long <\/b>in <b>Integer<\/b>.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_04\/pic_284_003.png\" alt=\"Anzeige nicht erlaubter Konvertierungen\" width=\"649,627\" height=\"227,5854\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Anzeige nicht erlaubter Konvertierungen<\/span><\/b><\/p>\n<h2>Option Strict als Standard setzen<\/h2>\n<p>Standardm&auml;&szlig;ig ist <b>Option Strict <\/b>f&uuml;r neue Projekte nicht auf den Wert <b>On <\/b>eingestellt, sondern auf <b>Off<\/b>. Wenn Sie wollen, dass diese Einstellung f&uuml;r alle neuen Projekte auf <b>On<\/b> gesetzt wird, &ouml;ffnen Sie mit <b>Extras|Optionen <\/b>den <b>Optionen<\/b>-Dialog von Visual Studio und navigieren dort zum Bereich <b>Projekte und Projektmappen|VB-Standard<\/b>. Hier stellen Sie die Option <b>Option Strict <\/b>auf <b>On <\/b>ein (siehe Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_04\/pic_284_004.png\" alt=\"Voreinstellen von Option Strict f&uuml;r neue Projekte\" width=\"649,627\" height=\"378,9489\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Voreinstellen von Option Strict f&uuml;r neue Projekte<\/span><\/b><\/p>\n<h2>Explizite Typkonvertierung<\/h2>\n<p>Neben der impliziten gibt es die explizite Typkonvertierung. Dabei verwenden wir eine Funktion, um die Konvertierung von dem einen in den anderen Typ vorzunehmen. Einige dieser Funktionen k&ouml;nnen Sie zum Konvertieren in spezielle Datentypen verwenden, zum Beispiel <b>CBool<\/b>. Damit konvertieren Sie den als Parameter angegebenen Ausdruck in ein Objekt des Typs <b>Boolean<\/b>:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>bolBeispiel<span style=\"color:blue;\"> As Boolean<\/span>\r\nbolBeispiel = CBool(-1)<\/pre>\n<h2>Typumwandlungsfunktionen<\/h2>\n<p>Es gibt die folgenden Typumwandlungsfunktionen:<\/p>\n<ul>\n<li><b>CBool<\/b>: Wandelt numerische Typen, <b>String <\/b>oder <b>Object <\/b>in den Datentyp <b>Boolean <\/b>um.<\/li>\n<li><b>CByte<\/b>: Wandelt numerische Typen, <b>Boolean<\/b>, <b>String <\/b>und <b>Object <\/b>in den Datentyp <b>Byte <\/b>um.<\/li>\n<li><b>CChar<\/b>: Konvertiert <b>String <\/b>und <b>Object <\/b>in den Datentyp <b>Char<\/b>.<\/li>\n<li><b>CDate<\/b>: Wandelt <b>String <\/b>und <b>Object <\/b>in den Datentyp <b>Date <\/b>um.<\/li>\n<li><b>CDbl<\/b>: Wandelt numerische Datentypen, <b>Boolean<\/b>, <b>String <\/b>und <b>Object <\/b>in den Datentyp <b>Double<\/b> um.<\/li>\n<li><b>CDec<\/b>: Wandelt numerische Datentypen, <b>Boolean<\/b>, <b>String <\/b>und <b>Object <\/b>in den Datentyp <b>Decimal <\/b>um.<\/li>\n<li><b>CInt<\/b>: Wandelt numerische Datentypen, <b>Boolean<\/b>,  <b>String <\/b>und <b>Object <\/b>in den Datentyp <b>Integer <\/b>um.<\/li>\n<li><b>CLng<\/b>: Wandelt  numerische Datentypen, <b>Boolean<\/b>, <b>String <\/b>oder <b>Object <\/b>in den Datentyp <b>Long <\/b>um.<\/li>\n<li><b>CObj<\/b>: Wandelt beliebige Datentypen in den Datentyp <b>Object <\/b>um.<\/li>\n<li><b>CSByte<\/b>: Wandelt beliebige numerische Datentypen, <b>Boolean<\/b>, <b>String <\/b>oder <b>Object <\/b>in den Datentyp <b>SByte <\/b>um.<\/li>\n<li><b>CShort<\/b>: Wandelt beliebige numerische Typen, <b>Boolean<\/b>, <b>String <\/b>oder <b>Object <\/b>in den Datentyp <b>Short <\/b>um.<\/li>\n<li><b>CSng<\/b>: Wandelt beliebige numerische Typen, <b>Boolean<\/b>, <b>String <\/b>oder <b>Object <\/b>in den Datentyp <b>Single <\/b>um.<\/li>\n<li><b>CStr<\/b>: Wandelt beliebige numerische Typen, <b>Boolean<\/b>, <b>Char<\/b>, <b>Char<\/b>-Arrays, <b>Date <\/b>und <b>Object <\/b>in den Datentyp <b>String <\/b>um.<\/li>\n<li><b>CUInt<\/b>: Wandelt beliebige numerische Typen, <b>Boolean<\/b>, <b>String <\/b>und <b>Object <\/b>in den Datentyp <b>UInteger <\/b>um.<\/li>\n<li><b>CULng<\/b>: Wandelt beliebige numerischer Typen, <b>Boolean<\/b>, <b>String <\/b>oder <b>Object <\/b>in den Datentyp <b>ULong <\/b>um.<\/li>\n<li><b>CUShort<\/b>: Wandelt beliebige numerische Typen, <b>Boolean<\/b>, <b>String <\/b>oder <b>Object <\/b>in den Datentyp <b>UShort <\/b>um.<\/li>\n<\/ul>\n<h2>Die Umwandlungsfunktion CType<\/h2>\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\/55000284\/\">\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\/55000284?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\/55000284\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"9fac6dd15a\"\/>\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>Unter VB.NET gibt es verschiedene M&ouml;glichkeiten, den Typ von Variablen umzuwandeln. Dieser Artikel erl&auml;utert den Unterschied zwischen impliziter und expliziter Typumwandlung, die Bedeutung von Option Strict, die verschiedenen Typumwandlungsfunktionen wie CBool und die Methoden der Convert-Klasse. Au&szlig;erdem gibt es noch flexible Umwandlungsfunktionen wie CType, DirectCast oder TryCast &#8211; auch diese schauen wir uns genauer an.<\/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":[662021,66042021,44000021,44000016],"tags":[],"yst_prominent_words":[],"class_list":["post-55000284","post","type-post","status-publish","format-standard","hentry","category-662021","category-66042021","category-Entity_Framework","category-VBGrundlagen"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000284","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=55000284"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000284\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000284"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}