{"id":28469,"date":"2019-06-25T00:00:00","date_gmt":"2019-06-24T22:00:00","guid":{"rendered":"https:\/\/blexin.com\/?p=28469"},"modified":"2021-01-13T09:40:32","modified_gmt":"2021-01-13T08:40:32","slug":"conversioni-di-tipi-custom-in-c","status":"publish","type":"post","link":"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/","title":{"rendered":"Conversioni di tipi custom in C#"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"608\" data-attachment-id=\"28470\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/attachment\/cd5fc5d7-3ac0-4953-a865-5a3672764e76\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png?fit=1024%2C608&amp;ssl=1\" data-orig-size=\"1024,608\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"cd5fc5d7-3ac0-4953-a865-5a3672764e76\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png?fit=1024%2C608&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png?resize=1024%2C608&#038;ssl=1\" alt=\"\" class=\"wp-image-28470\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/cd5fc5d7-3ac0-4953-a865-5a3672764e76-980x582.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/cd5fc5d7-3ac0-4953-a865-5a3672764e76-480x285.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Uno sviluppatore di codice professionale deve avere delle basi solide. La realt\u00e0 quotidiana del lavoro pu\u00f2 portarci lontano da quanto abbiamo studiato cos\u00ec come l\u2019abitudine a spingerci a ripetere sempre gli stessi errori. Un ripasso delle basi \u00e8 sempre un utile esercizio che non pu\u00f2 che farci del bene! Sfruttiamo, quindi, questo spazio per parlare del nostro linguaggio di programmazione preferito.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C# utilizza una tipizzazione statica in compile-time. Dopo aver dichiarato una variabile, questa non pu\u00f2 essere assegnata ad un valore di altro tipo a meno che quest&#8217;ultimo non sia convertibile in modo implicito nel tipo della variabile stessa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Avremo quindi i seguenti tipi di conversione:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Implicita:&nbsp;<\/strong>per la quale non abbiamo bisogno di nessuna sintassi particolare e non ci sar\u00e0 perdita di dati<\/li><li><strong>Esplicita:&nbsp;<\/strong>quando esiste la possibilit\u00e0 che ci sia perdita di dati (per esempio se proviamo a convertire una variabile di un determinato tipo che ha un valore superiore al valore massimo memorizzabile nel tipo della variabile ospite), la conversione \u00e8 detta narrowing. il compilatore ci obbliga (pena la mancata compilazione) ad eseguire una conversione esplicita detta cast. Un cast si esegue specificando, tra parentesi tonde, il tipo di dato prima della variabile o del valore da convertire. Stiamo cos\u00ec informando il compilatore che siamo consapevoli della possibile perdita di informazioni<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Per i tipi numerici, quando c&#8217;\u00e8 la certezza che non ci sia perdita informazioni perch\u00e9 il tipo della variabile ospite potr\u00e0 sicuramente contenere il valore della variabile da convertire, la conversione \u00e8 detta\u00a0<em>widening<\/em><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nint numInt = 1000;\nlong numLong = i;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Per i tipi di riferimento esiste sempre una conversione implicita da una classe ad una classe base diretta o indiretta o alle interfacce implementate.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nDipendente dip = new Dipendente();\nPersona pers = dip;\nlong numLong = 2000;\nint numInt = (int)numLong;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nota: Questa assegnazione compila correttamente, ma potrebbe generare un\u2019eccezione (<em>OverflowException<\/em>) in fase di runtime se il valore del tipo da convertire (<em>numLong<\/em>) non rientra nell&#8217;intervallo del tipo della variabile di destinazione (<em>numInt<\/em>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La stessa cosa accade per i tipi di riferimento. Se vogliamo convertire una variabile del tipo della classe base ad un tipo della classe derivata, abbiamo bisogno di effettuare un cast esplicito.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nPersona pers = new Persona();\nDipendente dip = (Dipendente)pers;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nota: Questa assegnazione compila correttamente, ma potrebbe generare un eccezione (<em>InvalidCastException<\/em>) in fase di runtime se l&#8217;oggetto sulla destra di quest&#8217;ultima (<em>pers<\/em>) non \u00e8 realmente del tipo specificato col cast (<em>Dipendente<\/em>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E se la conversione dovesse avvenire tra tipi che non sono compatibili tra loro? In questo caso possono venirci in aiuto metodi di classi helper. Se volessimo per esempio convertire una stringa in un numero, potremmo utilizzare i metodi\u00a0<em>Parse<\/em>\u00a0o\u00a0<em>TryParse<\/em>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nstring testo = &quot;100&quot;;\nint numero = int.Parse(testo);\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Se volessimo convertire un array di byte in un Int64, potremmo usare la classe BitConverter e il suo metodo ToInt64(byte[] value, int startIndex):<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nbyte&#x5B;] bytes = {3,5,2,8};\nInt64 valoreInt64 = BitConverter.ToInt64( bytes, 0 );\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Come viene invece trattata la conversione tra classi definite da noi? Anche in questo caso, potremmo avere la necessit\u00e0 di assegnare ad una variabile di un dato tipo una di tipo diverso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C# consente di creare dei metodi statici che utilizzano appositi operatori (implicit ed explicit) all&#8217;interno delle loro dichiarazioni e di specificare in questo modo conversioni all&#8217;interno di una classe permettendoci di convertire quest&#8217;ultima da e\/o in un altra classe. Il tutto senza che ci siano fra loro relazioni di ereditariet\u00e0 o un\u2019interfaccia che le accomuni. Non sarebbe quindi possibile, in teoria, nessun tipo di conversione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vediamo un esempio pratico per chiarirci un po\u2019 le idee. Questo codice converte in modo implicito dal tipo\u00a0<em>NuovoProdotto<\/em>\u00a0a quello\u00a0<em>VecchioProdotto<\/em>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nclass VecchioProdotto\n{\n\u00a0\u00a0\u00a0public static implicit operator VecchioProdotto(NuovoProdotto np)\n\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0VecchioProdotto vp = new VecchioProdotto();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0vp.nomeProdotto = np.nome;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0vp.descrizioneProdotto = np.descrizione;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0vp.matricola = np.codiceIdentificativo;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return vp;\n\u00a0\u00a0\u00a0\u00a0\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">In questo metodo statico, che sar\u00e0 utilizzato automaticamente in fase di conversione, abbiamo mappato le propriet\u00e0 della classe\u00a0<em>VecchioProdotto<\/em>\u00a0su quelle della classe\u00a0<em>NuovoProdotto<\/em>. Possiamo quindi ora scrivere<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nVecchioProdotto vp = np;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">In questo altro caso, invece, vediamo una funzione di conversione esplicita (che necessita di un cast) che converte dal tipo\u00a0<em>VecchioProdotto<\/em>\u00a0a quello\u00a0<em>NuovoProdotto<\/em>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nclass NuovoProdotto \/\/Avremmo potuto indifferentemente inserire la funzione all&#039;interno della classe VecchioProdotto\n{\n\u00a0\u00a0\u00a0public static explicit operator NuovoProdotto(VecchioProdotto vp)\n\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0NuovoProdotto np = new NuovoProdotto();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0np.nome = vp.nomeProdotto;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0np.descrizione = vp.descrizioneProdotto;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0np.codiceIdentificativo = vp.matricola + vp.idTipologia;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return np;\n\u00a0\u00a0\u00a0\u00a0\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">In questo caso scriveremo:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nNuovoProdotto npr = (NuovoProdotto)vp;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Le conversioni di tipo definite dall&#8217;utente possono avvenire oltre che tra tipi custom, come abbiamo gi\u00e0 visto, anche fra un tipo base e uno custom non compatibili. Non \u00e8 possibile per\u00f2 definire di nuovo una conversione (implicita o esplicita) gi\u00e0 esistente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si pu\u00f2 dichiarare una funzione di conversione con gli operatori implicit ed explicit da un tipo di origine ad uno di destinazione seguendo le seguenti regole:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>N\u00e9 l&#8217;origine n\u00e9 la destinazione devono essere di un tipo interfaccia o di tipo object.<\/li><li>L&#8217;origine o la destinazione sono una classe o uno struct all&#8217;interno delle quali avviene la dichiarazione dell&#8217;operatore<\/li><li>Nel caso di conversione tra due classi, la dichiarazione pu\u00f2 avvenire indifferentemente nella classe origine o in quella destinazione.<\/li><li>L&#8217;origine e la destinazione non devono essere classi base o derivate l&#8217;una dell&#8217;altra.<\/li><li>La funzione deve essere public e static, non deve esserci tipo di ritorno e il nome deve coincidere col tipo della destinazione.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In definitiva, se una conversione definita dall&#8217;utente pu\u00f2 dar luogo a eccezioni o perdita di dati, allora deve essere definita con l&#8217;operatore explicit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le conversioni definite dall&#8217;utente con l&#8217;operatore implicit, devono essere progettate in modo che non generino mai eccezioni e che non ci sia perdita di informazioni.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Spero vi torni utile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alla prossima!<\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>Vediamo come eseguire conversioni fra tipi non compatibili in C# con gli operatori implicit ed explicit<\/p>\n","protected":false},"author":196716244,"featured_media":28470,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_crdt_document":"","inline_featured_image":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[688637374],"tags":[688637382],"class_list":["post-28469","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-c"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Conversioni di tipi custom in C# - Blexin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Conversioni di tipi custom in C# - Blexin\" \/>\n<meta property=\"og:description\" content=\"Vediamo come eseguire conversioni fra tipi non compatibili in C# con gli operatori implicit ed explicit\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blexin\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-24T22:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-13T08:40:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i2.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png?fit=1024%2C608&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"608\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Francesco Vastarella\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Francesco Vastarella\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/conversioni-di-tipi-custom-in-c\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/conversioni-di-tipi-custom-in-c\\\/\"},\"author\":{\"name\":\"Francesco Vastarella\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/388dae0ca9df603c88b5e41e29cf2d4d\"},\"headline\":\"Conversioni di tipi custom in C#\",\"datePublished\":\"2019-06-24T22:00:00+00:00\",\"dateModified\":\"2021-01-13T08:40:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/conversioni-di-tipi-custom-in-c\\\/\"},\"wordCount\":841,\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/conversioni-di-tipi-custom-in-c\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png?fit=1024%2C608&ssl=1\",\"keywords\":[\"C#\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/conversioni-di-tipi-custom-in-c\\\/\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/conversioni-di-tipi-custom-in-c\\\/\",\"name\":\"Conversioni di tipi custom in C# - Blexin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/conversioni-di-tipi-custom-in-c\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/conversioni-di-tipi-custom-in-c\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png?fit=1024%2C608&ssl=1\",\"datePublished\":\"2019-06-24T22:00:00+00:00\",\"dateModified\":\"2021-01-13T08:40:32+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/388dae0ca9df603c88b5e41e29cf2d4d\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/conversioni-di-tipi-custom-in-c\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/conversioni-di-tipi-custom-in-c\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/conversioni-di-tipi-custom-in-c\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png?fit=1024%2C608&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png?fit=1024%2C608&ssl=1\",\"width\":1024,\"height\":608},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/conversioni-di-tipi-custom-in-c\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blexin.com\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Conversioni di tipi custom in C#\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/\",\"name\":\"Blexin\",\"description\":\"Con noi \u00e8 semplice\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blexin.com\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/388dae0ca9df603c88b5e41e29cf2d4d\",\"name\":\"Francesco Vastarella\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3b8deedae8f35372d5fba49f918006fb0a58a2943aff6ae52d3ff188e0c441bb?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3b8deedae8f35372d5fba49f918006fb0a58a2943aff6ae52d3ff188e0c441bb?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3b8deedae8f35372d5fba49f918006fb0a58a2943aff6ae52d3ff188e0c441bb?s=96&d=identicon&r=g\",\"caption\":\"Francesco Vastarella\"},\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/author\\\/francesco-vastarellablexin-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Conversioni di tipi custom in C# - Blexin","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/","og_locale":"it_IT","og_type":"article","og_title":"Conversioni di tipi custom in C# - Blexin","og_description":"Vediamo come eseguire conversioni fra tipi non compatibili in C# con gli operatori implicit ed explicit","og_url":"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/","og_site_name":"Blexin","article_published_time":"2019-06-24T22:00:00+00:00","article_modified_time":"2021-01-13T08:40:32+00:00","og_image":[{"width":1024,"height":608,"url":"https:\/\/i2.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png?fit=1024%2C608&ssl=1","type":"image\/png"}],"author":"Francesco Vastarella","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"Francesco Vastarella","Tempo di lettura stimato":"5 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/#article","isPartOf":{"@id":"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/"},"author":{"name":"Francesco Vastarella","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/388dae0ca9df603c88b5e41e29cf2d4d"},"headline":"Conversioni di tipi custom in C#","datePublished":"2019-06-24T22:00:00+00:00","dateModified":"2021-01-13T08:40:32+00:00","mainEntityOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/"},"wordCount":841,"image":{"@id":"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png?fit=1024%2C608&ssl=1","keywords":["C#"],"articleSection":["Blog"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/","url":"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/","name":"Conversioni di tipi custom in C# - Blexin","isPartOf":{"@id":"https:\/\/blexin.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/#primaryimage"},"image":{"@id":"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png?fit=1024%2C608&ssl=1","datePublished":"2019-06-24T22:00:00+00:00","dateModified":"2021-01-13T08:40:32+00:00","author":{"@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/388dae0ca9df603c88b5e41e29cf2d4d"},"breadcrumb":{"@id":"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/#primaryimage","url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png?fit=1024%2C608&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png?fit=1024%2C608&ssl=1","width":1024,"height":608},{"@type":"BreadcrumbList","@id":"https:\/\/blexin.com\/it\/blog\/conversioni-di-tipi-custom-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blexin.com\/it\/"},{"@type":"ListItem","position":2,"name":"Conversioni di tipi custom in C#"}]},{"@type":"WebSite","@id":"https:\/\/blexin.com\/it\/#website","url":"https:\/\/blexin.com\/it\/","name":"Blexin","description":"Con noi \u00e8 semplice","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blexin.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/388dae0ca9df603c88b5e41e29cf2d4d","name":"Francesco Vastarella","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/3b8deedae8f35372d5fba49f918006fb0a58a2943aff6ae52d3ff188e0c441bb?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3b8deedae8f35372d5fba49f918006fb0a58a2943aff6ae52d3ff188e0c441bb?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3b8deedae8f35372d5fba49f918006fb0a58a2943aff6ae52d3ff188e0c441bb?s=96&d=identicon&r=g","caption":"Francesco Vastarella"},"url":"https:\/\/blexin.com\/it\/author\/francesco-vastarellablexin-com\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/cd5fc5d7-3ac0-4953-a865-5a3672764e76.png?fit=1024%2C608&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pcyUBx-7pb","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/28469","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/users\/196716244"}],"replies":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/comments?post=28469"}],"version-history":[{"count":4,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/28469\/revisions"}],"predecessor-version":[{"id":28476,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/28469\/revisions\/28476"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media\/28470"}],"wp:attachment":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media?parent=28469"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/categories?post=28469"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/tags?post=28469"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}