{"id":23395,"date":"2024-06-05T20:26:57","date_gmt":"2024-06-05T18:26:57","guid":{"rendered":"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/"},"modified":"2024-06-05T20:26:57","modified_gmt":"2024-06-05T18:26:57","slug":"c-13-estende-le-funzionalita-di-params","status":"publish","type":"post","link":"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/","title":{"rendered":"C# 13 estende le funzionalit\u00e0 di params"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>La recente conferenza <em>Build 2024<\/em> di Microsoft \u00e8 stata anche l&#8217;occasione per presentare le nuove funzionalit\u00e0 di <strong>C# 13<\/strong>. Versione del linguaggio che si segnala in particolare per i miglioramenti apportati a <code>params<\/code>. Keyword per i tipi di parametri che fino a poco tempo fa era limitata agli array e che ora trova nuovi casi d&#8217;uso. <\/p>\n<p>Quando viene utilizzata prima di un parametro, essa permette ad un metodo di accettare una lista (anche vuota) di valori separati da una virgola. Questi ultimi vengono quindi collocati in una raccolta associata ad un tipo specifico. <\/p>\n<p>Analizziamo i cambiamenti portati da <a href=\"https:\/\/www.html.it\/guide\/guida-c1\/\" target=\"_blank\" rel=\"noopener\">C#<\/a> 13.<\/p>\n<h2 id=\"cosa-e-code-params-code\">Cosa \u00e8 <code>params<\/code><\/h2>\n<p>Nativamente <code>params<\/code> viene utilizzata per specificare un parametro di metodo che accetta un numero variabile di argomenti. In questo modo \u00e8 possibile passare una lista separata da virgole di argomenti di un tipo specificato a un metodo, senza dover creare esplicitamente un array. In questo modo un metodo pu\u00f2 accettare un numero variabile di argomenti, con un beneficio per la flessibilit\u00e0.<\/p>\n<p>Le chiamate ai metodi diventano inoltre pi\u00f9 semplici, soprattutto quando si deve operare con un gran numero di parametri. Esistono per\u00f2 dei vincoli: si pu\u00f2 introdurre un solo parametro <code>params<\/code> per metodo e la parola chiave pu\u00f2 essere impiegata solo per l&#8217;ultimo parametro nella lista dei parametri di un metodo.<\/p>\n<h2 id=\"novita-per-code-params-code-in-c-13\">Novit\u00e0 per <code>params<\/code> in C# 13<\/h2>\n<p>Come in parte gi\u00e0 anticipato, in C# 13 <code>params<\/code> pu\u00f2 essere qualsiasi tipo di raccolta compatibile con le espressioni per le raccolte, come per esempio <code>List&lt;T&gt;<\/code>, <code>Span&lt;T&gt;<\/code> e <code>IEnumerable&lt;T&gt;<\/code>. Possono inoltre essere utilizzati anche tipi di raccolta personalizzati attenendosi a delle apposite linee guida. Vediamo di seguito un semplice esempio:<\/p>\n<pre><code class=\"language-c\">void PrintList(params IEnumerable&lt;string&gt; list)\n    =&gt; Console.WriteLine(string.Join(\", \", list));\nPrintList(\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\");<\/code><\/pre>\n<p>Lanciando un comando di stampa si ottiene il risultato seguente:<\/p>\n<pre><code class=\"language-markup\">\"Sun, Mon, Tue, Wed, Thu, Fri, Sat\"<\/code><\/pre>\n<p>\u00c8 utile segnalare inoltre che i valori passati a <a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/dotnet-build-2024-announcements\/#c-13\" target=\"_blank\" rel=\"nofollow noopener\">params<\/a> vengono convertiti implicitamente al tipo <code>span<\/code>. In questo modo viene selezionato il metodo pi\u00f9 efficiente, in particolare quando i metodi differiscono per l&#8217;uso di span o array.<\/p>\n<p><span class=\"bm_post\" style=\"display:none\" data-domain=\"html.it\" data-author=\"Claudio Garau\" data-alias=\"Claudio Garau\" data-tipologia=\"edit\" data-custom=\"\" data-po=\"\" data-path=\"https:\/\/www.html.it\/magazine\/c-13-estende-le-funzionalita-di-params\/\" data-postid=\"507456\" data-programs=\"\" data-subjects=\"\" data-themes=\"\"\/>    <\/p>\n<div class=\"partial-newsletter\">\n<p>        <!-- newsletter first step --><\/p>\n<div id=\"newsletter_div\" class=\"bro--disabled newsletter__pass-a\">\n<p>Se vuoi aggiornamenti su su questo argomento  inserisci la tua email nel box qui sotto:<\/p>\n<p> <!-- <em>C# 13 estende le funzionalit&agrave; di params<\/em> --><\/p>\n<div class=\"newsletter__disclaimer\">\n<p>Compilando il presente form acconsento a ricevere le informazioni<br \/>\n                    relative ai servizi di cui alla presente pagina ai sensi<br \/>\n                    dell&#8217;<a href=\"https:\/\/www.html.it\/privacy-policy\" target=\"_blank\" rel=\"noopener\">informativa sulla privacy<\/a>.<\/p>\n<\/div><\/div>\n<p>        <!-- newsletter second step --><\/p>\n<p>        <!-- newsletter loader --><\/p>\n<p>        <!-- newsletter notice --><\/p><\/div><\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/www.html.it\/magazine\/c-13-estende-le-funzionalita-di-params\/\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La recente conferenza Build 2024 di Microsoft \u00e8 stata anche l&#8217;occasione per presentare le nuove funzionalit\u00e0 di C# 13. Versione del linguaggio che si segnala in particolare per i miglioramenti apportati a params. Keyword per i tipi di parametri che fino a poco tempo fa era limitata agli array e che ora trova nuovi casi&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_s2mail":""},"categories":[37],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C# 13 estende le funzionalit\u00e0 di params - AGENZIA WEB Italia<\/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:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C# 13 estende le funzionalit\u00e0 di params - AGENZIA WEB Italia\" \/>\n<meta property=\"og:description\" content=\"La recente conferenza Build 2024 di Microsoft \u00e8 stata anche l&#8217;occasione per presentare le nuove funzionalit\u00e0 di C# 13. Versione del linguaggio che si segnala in particolare per i miglioramenti apportati a params. Keyword per i tipi di parametri che fino a poco tempo fa era limitata agli array e che ora trova nuovi casi...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/\" \/>\n<meta property=\"og:site_name\" content=\"AGENZIA WEB Italia\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-05T18:26:57+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42\"},\"headline\":\"C# 13 estende le funzionalit\u00e0 di params\",\"datePublished\":\"2024-06-05T18:26:57+00:00\",\"dateModified\":\"2024-06-05T18:26:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/\"},\"wordCount\":345,\"publisher\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization\"},\"articleSection\":[\"News\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/\",\"name\":\"C# 13 estende le funzionalit\u00e0 di params - AGENZIA WEB Italia\",\"isPartOf\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#website\"},\"datePublished\":\"2024-06-05T18:26:57+00:00\",\"dateModified\":\"2024-06-05T18:26:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# 13 estende le funzionalit\u00e0 di params\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#website\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/\",\"name\":\"AGENZIA WEB Italia\",\"description\":\"Web design Web agency Italia\",\"publisher\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization\",\"name\":\"Multimedia Web\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png\",\"contentUrl\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png\",\"width\":200,\"height\":57,\"caption\":\"Multimedia Web\"},\"image\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g\",\"caption\":\"admin\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C# 13 estende le funzionalit\u00e0 di params - AGENZIA WEB Italia","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:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/","og_locale":"it_IT","og_type":"article","og_title":"C# 13 estende le funzionalit\u00e0 di params - AGENZIA WEB Italia","og_description":"La recente conferenza Build 2024 di Microsoft \u00e8 stata anche l&#8217;occasione per presentare le nuove funzionalit\u00e0 di C# 13. Versione del linguaggio che si segnala in particolare per i miglioramenti apportati a params. Keyword per i tipi di parametri che fino a poco tempo fa era limitata agli array e che ora trova nuovi casi...","og_url":"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/","og_site_name":"AGENZIA WEB Italia","article_published_time":"2024-06-05T18:26:57+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"admin","Tempo di lettura stimato":"2 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/#article","isPartOf":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/"},"author":{"name":"admin","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42"},"headline":"C# 13 estende le funzionalit\u00e0 di params","datePublished":"2024-06-05T18:26:57+00:00","dateModified":"2024-06-05T18:26:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/"},"wordCount":345,"publisher":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization"},"articleSection":["News"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/","name":"C# 13 estende le funzionalit\u00e0 di params - AGENZIA WEB Italia","isPartOf":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#website"},"datePublished":"2024-06-05T18:26:57+00:00","dateModified":"2024-06-05T18:26:57+00:00","breadcrumb":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/c-13-estende-le-funzionalita-di-params\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.nycwebdesign.eu\/webdesign\/"},{"@type":"ListItem","position":2,"name":"C# 13 estende le funzionalit\u00e0 di params"}]},{"@type":"WebSite","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#website","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/","name":"AGENZIA WEB Italia","description":"Web design Web agency Italia","publisher":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.nycwebdesign.eu\/webdesign\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization","name":"Multimedia Web","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png","contentUrl":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png","width":200,"height":57,"caption":"Multimedia Web"},"image":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42","name":"admin","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g","caption":"admin"}}]}},"_links":{"self":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/posts\/23395"}],"collection":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/comments?post=23395"}],"version-history":[{"count":0,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/posts\/23395\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/media?parent=23395"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/categories?post=23395"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/tags?post=23395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}