{"id":97,"date":"2023-09-25T14:26:31","date_gmt":"2023-09-25T17:26:31","guid":{"rendered":"https:\/\/dotnetdicas.com.br\/?p=97"},"modified":"2023-09-25T15:25:39","modified_gmt":"2023-09-25T18:25:39","slug":"operador-de-coalescencia-em-c-como-usar-e","status":"publish","type":"post","link":"https:\/\/dotnetdicas.com.br\/?p=97","title":{"rendered":"Operador de Coalesc\u00eancia: Como Usar ?? e ??="},"content":{"rendered":"<p><span style=\"font-family: verdana, geneva, sans-serif;\">O universo da programa\u00e7\u00e3o em C# \u00e9 amplo e fascinante. Nele, um dos operadores que talvez n\u00e3o seja t\u00e3o mencionado quanto deveria, mas que \u00e9 extremamente \u00fatil, \u00e9 o operador de coalesc\u00eancia. Ent\u00e3o, vamos mergulhar nesse t\u00f3pico e entender como usar os operadores <strong>??<\/strong> e <strong>??=<\/strong> de maneira eficiente.<\/span><\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">Primeiramente, voc\u00ea j\u00e1 se deparou com situa\u00e7\u00f5es onde \u00e9 necess\u00e1rio verificar se uma vari\u00e1vel \u00e9 nula (ou <strong>null<\/strong>, como dir\u00edamos em C#) e, em caso afirmativo, atribuir um valor padr\u00e3o a ela? Antigamente, isso exigia um bloco de c\u00f3digo <strong>if-else<\/strong>. No entanto, gra\u00e7as ao operador de coalesc\u00eancia, esse processo se tornou mais elegante e conciso.<\/span><\/p>\n<h3><span style=\"font-family: verdana, geneva, sans-serif;\">1. Utilidade principal<\/span><\/h3>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">A utilidade principal do operador de coalesc\u00eancia \u00e9 reduzir a quantidade de c\u00f3digo necess\u00e1ria para verificar se um valor \u00e9 <em>null<\/em> e fornecer um valor padr\u00e3o se for.<\/span><\/p>\n<h3><span style=\"font-family: verdana, geneva, sans-serif;\">2. Vamos entender<\/span><\/h3>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">Vamos considerar o operador ?? inicialmente. Essencialmente, ele verifica se o valor \u00e0 sua esquerda \u00e9 null. Se for, ele retorna o valor \u00e0 direita. Se n\u00e3o, ele simplesmente retorna o valor \u00e0 esquerda. Por exemplo:<\/span><\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\"><strong>int? valorNulo = null;<\/strong><br \/>\n<strong>int valorPadrao = 10;<\/strong><br \/>\n<strong>int resultado = valorNulo ?? valorPadrao;<\/strong><br \/>\n<\/span><\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">Neste caso, como <strong><em>valorNulo<\/em><\/strong> \u00e9, de fato, nulo, <strong><em>resultado<\/em><\/strong> receber\u00e1 o valor de <strong><em>valorPadrao<\/em><\/strong>, que \u00e9 10. Contudo, se <strong><em>valorNulo<\/em><\/strong> tivesse algum valor, digamos, 5, ent\u00e3o resultado seria 5. Isso elimina a necessidade de uma verifica\u00e7\u00e3o expl\u00edcita usando <strong><em>if-else<\/em><\/strong>.<\/span><\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">Al\u00e9m disso, o operador <strong>??<\/strong> \u00e9 incrivelmente vers\u00e1til. Ele n\u00e3o se limita a tipos primitivos. Imagine que voc\u00ea tenha objetos ou at\u00e9 mesmo listas. O operador funciona da mesma maneira, garantindo que voc\u00ea sempre tenha um valor padr\u00e3o caso a vari\u00e1vel verificada seja nula.<\/span><\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">Por outro lado, e se quis\u00e9ssemos n\u00e3o apenas verificar se uma vari\u00e1vel \u00e9 nula, mas tamb\u00e9m atribuir um valor padr\u00e3o a ela, caso seja? Bem, a partir do C# 8.0, temos o operador <strong>??=<\/strong>,\u00a0que combina a verifica\u00e7\u00e3o e a atribui\u00e7\u00e3o em uma \u00fanica opera\u00e7\u00e3o.<\/span><\/p>\n<p><strong><span style=\"font-family: verdana, geneva, sans-serif;\">string texto = null;<br \/>\ntexto ??= &#8220;Texto padr\u00e3o&#8221;;<br \/>\n<\/span><\/strong><\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">Neste exemplo, como a string <strong><em>texto<\/em><\/strong> \u00e9 inicialmente nula, o operador <strong><em>??=<\/em><\/strong> ir\u00e1 atribuir &#8220;Texto padr\u00e3o&#8221; a ela. No entanto, se <strong><em>texto<\/em><\/strong> j\u00e1 contivesse algum valor, ele permaneceria inalterado. Esse operador, ent\u00e3o, simplifica nosso c\u00f3digo, tornando-o mais limpo e leg\u00edvel.<\/span><\/p>\n<h3><span style=\"font-family: verdana, geneva, sans-serif;\">3. E sobre a efici\u00eancia?<\/span><\/h3>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">A boa not\u00edcia \u00e9 que eles s\u00e3o t\u00e3o eficientes quanto os blocos <strong>if-else<\/strong> tradicionais, mas com a vantagem de serem mais elegantes e concisos.<\/span><\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">Al\u00e9m disso, \u00e9 crucial mencionar que esses operadores de coalesc\u00eancia s\u00e3o compat\u00edveis com outros operadores em C#. Por exemplo, \u00e9 perfeitamente v\u00e1lido combinar o operador <strong>??<\/strong> com o operador tern\u00e1rio <strong>?:<\/strong> para criar express\u00f5es ainda mais concisas.<\/span><\/p>\n<h3><span style=\"font-family: verdana, geneva, sans-serif;\">4. Exemplo<\/span><\/h3>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-101\" src=\"http:\/\/dotnetdicas.com.br\/wp-content\/uploads\/2023\/09\/operador-coalescencia-300x201.png\" alt=\"operador coalescencia\" width=\"751\" height=\"503\" srcset=\"https:\/\/dotnetdicas.com.br\/wp-content\/uploads\/2023\/09\/operador-coalescencia-300x201.png 300w, https:\/\/dotnetdicas.com.br\/wp-content\/uploads\/2023\/09\/operador-coalescencia-1024x685.png 1024w, https:\/\/dotnetdicas.com.br\/wp-content\/uploads\/2023\/09\/operador-coalescencia-768x514.png 768w, https:\/\/dotnetdicas.com.br\/wp-content\/uploads\/2023\/09\/operador-coalescencia-1536x1028.png 1536w, https:\/\/dotnetdicas.com.br\/wp-content\/uploads\/2023\/09\/operador-coalescencia.png 1615w\" sizes=\"(max-width: 751px) 100vw, 751px\" \/><\/p>\n<h3><span style=\"font-family: verdana, geneva, sans-serif;\">5. Conclus\u00e3o<\/span><\/h3>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">A linguagem C# oferece uma s\u00e9rie de ferramentas que facilitam a vida do desenvolvedor. Os operadores de coalesc\u00eancia <strong>??<\/strong> e <strong>??=<\/strong> s\u00e3o apenas dois exemplos de como a linguagem evoluiu ao longo dos anos para tornar o c\u00f3digo mais limpo, leg\u00edvel e eficiente. Assim, ao trabalhar com vari\u00e1veis que podem ser nulas, lembre-se desses operadores. Eles certamente ajudar\u00e3o a melhorar a qualidade do seu c\u00f3digo e a tornar sua programa\u00e7\u00e3o di\u00e1ria mais agrad\u00e1vel. E como qualquer ferramenta, a pr\u00e1tica leva \u00e0 perfei\u00e7\u00e3o. Portanto, sempre que poss\u00edvel, tente incorporar esses operadores em seu fluxo de trabalho e veja a m\u00e1gica acontecer!<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">At\u00e9 a pr\u00f3xima!!!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O universo da programa\u00e7\u00e3o em C# \u00e9 amplo e fascinante. Nele, um dos operadores que talvez n\u00e3o seja t\u00e3o mencionado quanto deveria, mas que \u00e9 extremamente \u00fatil, \u00e9 o operador de coalesc\u00eancia. Ent\u00e3o, vamos mergulhar nesse t\u00f3pico e entender como usar os operadores ?? e ??= de maneira eficiente. Primeiramente, voc\u00ea j\u00e1 se deparou com [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Operador de Coalesc\u00eancia: Como Usar ?? e ??= - DotNetDicas - C\u00f3digo forte, Carreira mais forte<\/title>\n<meta name=\"description\" content=\"Um dos operadores que \u00e9 extremamente \u00fatil, \u00e9 o operador de coalesc\u00eancia. Vamos entender como usar os operadores ?? e ??= de...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dotnetdicas.com.br\/?p=97\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Operador de Coalesc\u00eancia: Como Usar ?? e ??= - DotNetDicas - C\u00f3digo forte, Carreira mais forte\" \/>\n<meta property=\"og:description\" content=\"Um dos operadores que \u00e9 extremamente \u00fatil, \u00e9 o operador de coalesc\u00eancia. Vamos entender como usar os operadores ?? e ??= de...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dotnetdicas.com.br\/?p=97\" \/>\n<meta property=\"og:site_name\" content=\"DotNetDicas - C\u00f3digo forte, Carreira mais forte\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-25T17:26:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-25T18:25:39+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/dotnetdicas.com.br\/wp-content\/uploads\/2023\/09\/operador-coalescencia-300x201.png\" \/>\n<meta name=\"author\" content=\"L\u00facio Torres\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"L\u00facio Torres\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dotnetdicas.com.br\/?p=97\",\"url\":\"https:\/\/dotnetdicas.com.br\/?p=97\",\"name\":\"Operador de Coalesc\u00eancia: Como Usar ?? e ??= - DotNetDicas - C\u00f3digo forte, Carreira mais forte\",\"isPartOf\":{\"@id\":\"https:\/\/dotnetdicas.com.br\/#website\"},\"datePublished\":\"2023-09-25T17:26:31+00:00\",\"dateModified\":\"2023-09-25T18:25:39+00:00\",\"author\":{\"@id\":\"https:\/\/dotnetdicas.com.br\/#\/schema\/person\/368975f3d3f2d0c3c1d7b176c555b3fa\"},\"description\":\"Um dos operadores que \u00e9 extremamente \u00fatil, \u00e9 o operador de coalesc\u00eancia. Vamos entender como usar os operadores ?? e ??= de...\",\"breadcrumb\":{\"@id\":\"https:\/\/dotnetdicas.com.br\/?p=97#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dotnetdicas.com.br\/?p=97\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dotnetdicas.com.br\/?p=97#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/dotnetdicas.com.br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Operador de Coalesc\u00eancia: Como Usar ?? e ??=\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dotnetdicas.com.br\/#website\",\"url\":\"https:\/\/dotnetdicas.com.br\/\",\"name\":\"DotNetDicas - C\u00f3digo forte, Carreira mais forte\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dotnetdicas.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/dotnetdicas.com.br\/#\/schema\/person\/368975f3d3f2d0c3c1d7b176c555b3fa\",\"name\":\"L\u00facio Torres\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/dotnetdicas.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c4d33f0feb1d62f7769da1983149ca69?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c4d33f0feb1d62f7769da1983149ca69?s=96&d=mm&r=g\",\"caption\":\"L\u00facio Torres\"},\"sameAs\":[\"https:\/\/dotnetdicas.com.br\"],\"url\":\"https:\/\/dotnetdicas.com.br\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Operador de Coalesc\u00eancia: Como Usar ?? e ??= - DotNetDicas - C\u00f3digo forte, Carreira mais forte","description":"Um dos operadores que \u00e9 extremamente \u00fatil, \u00e9 o operador de coalesc\u00eancia. Vamos entender como usar os operadores ?? e ??= de...","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:\/\/dotnetdicas.com.br\/?p=97","og_locale":"pt_BR","og_type":"article","og_title":"Operador de Coalesc\u00eancia: Como Usar ?? e ??= - DotNetDicas - C\u00f3digo forte, Carreira mais forte","og_description":"Um dos operadores que \u00e9 extremamente \u00fatil, \u00e9 o operador de coalesc\u00eancia. Vamos entender como usar os operadores ?? e ??= de...","og_url":"https:\/\/dotnetdicas.com.br\/?p=97","og_site_name":"DotNetDicas - C\u00f3digo forte, Carreira mais forte","article_published_time":"2023-09-25T17:26:31+00:00","article_modified_time":"2023-09-25T18:25:39+00:00","og_image":[{"url":"http:\/\/dotnetdicas.com.br\/wp-content\/uploads\/2023\/09\/operador-coalescencia-300x201.png"}],"author":"L\u00facio Torres","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"L\u00facio Torres","Est. tempo de leitura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dotnetdicas.com.br\/?p=97","url":"https:\/\/dotnetdicas.com.br\/?p=97","name":"Operador de Coalesc\u00eancia: Como Usar ?? e ??= - DotNetDicas - C\u00f3digo forte, Carreira mais forte","isPartOf":{"@id":"https:\/\/dotnetdicas.com.br\/#website"},"datePublished":"2023-09-25T17:26:31+00:00","dateModified":"2023-09-25T18:25:39+00:00","author":{"@id":"https:\/\/dotnetdicas.com.br\/#\/schema\/person\/368975f3d3f2d0c3c1d7b176c555b3fa"},"description":"Um dos operadores que \u00e9 extremamente \u00fatil, \u00e9 o operador de coalesc\u00eancia. Vamos entender como usar os operadores ?? e ??= de...","breadcrumb":{"@id":"https:\/\/dotnetdicas.com.br\/?p=97#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dotnetdicas.com.br\/?p=97"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dotnetdicas.com.br\/?p=97#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/dotnetdicas.com.br\/"},{"@type":"ListItem","position":2,"name":"Operador de Coalesc\u00eancia: Como Usar ?? e ??="}]},{"@type":"WebSite","@id":"https:\/\/dotnetdicas.com.br\/#website","url":"https:\/\/dotnetdicas.com.br\/","name":"DotNetDicas - C\u00f3digo forte, Carreira mais forte","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dotnetdicas.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/dotnetdicas.com.br\/#\/schema\/person\/368975f3d3f2d0c3c1d7b176c555b3fa","name":"L\u00facio Torres","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/dotnetdicas.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c4d33f0feb1d62f7769da1983149ca69?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c4d33f0feb1d62f7769da1983149ca69?s=96&d=mm&r=g","caption":"L\u00facio Torres"},"sameAs":["https:\/\/dotnetdicas.com.br"],"url":"https:\/\/dotnetdicas.com.br\/?author=2"}]}},"_links":{"self":[{"href":"https:\/\/dotnetdicas.com.br\/index.php?rest_route=\/wp\/v2\/posts\/97"}],"collection":[{"href":"https:\/\/dotnetdicas.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dotnetdicas.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dotnetdicas.com.br\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dotnetdicas.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=97"}],"version-history":[{"count":5,"href":"https:\/\/dotnetdicas.com.br\/index.php?rest_route=\/wp\/v2\/posts\/97\/revisions"}],"predecessor-version":[{"id":103,"href":"https:\/\/dotnetdicas.com.br\/index.php?rest_route=\/wp\/v2\/posts\/97\/revisions\/103"}],"wp:attachment":[{"href":"https:\/\/dotnetdicas.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=97"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dotnetdicas.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=97"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dotnetdicas.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=97"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}