{"id":255,"date":"2020-01-19T11:13:14","date_gmt":"2020-01-19T11:13:14","guid":{"rendered":"http:\/\/144.76.171.171\/blog\/?p=255"},"modified":"2020-01-19T11:13:14","modified_gmt":"2020-01-19T11:13:14","slug":"enum-tipleri-ve-parse-tryparse-kullanimi","status":"publish","type":"post","link":"https:\/\/berenkudaygorun.com\/blog\/blog\/2020\/01\/19\/enum-tipleri-ve-parse-tryparse-kullanimi\/","title":{"rendered":"Enum Tipleri ve Parse() TryParse() Kullan\u0131m\u0131"},"content":{"rendered":"<p>Enum tipinin Parse() metodu kendisine parametre olarak verilen enum tipinde arama yap\u0131l\u0131rken kullan\u0131lmaktad\u0131r. Bu metodun nas\u0131l kullan\u0131ld\u0131\u011f\u0131 a\u015fa\u011f\u0131da verilmi\u015ftir.<\/p>\n<pre><code class=\"language-csharp\">using System;\nnamespace ConsoleApp3\n{\n    enum Ay\n    {\n\n        OCAK = 1,\n        SUBAT,\n        MART,\n        NISAN,\n        MAYIS,\n        HAZIRAN,\n        TEMMUZ,\n        AGUSTOS,\n        EYLUL,\n        EKIM,\n        KASIM,\n        ARALIK\n    }\n    class Program\n    {\n        static void Main(string[] args)\n        {\n            var a  = Enum.Parse(typeof(Ay), &quot;ARALIk&quot;, true);\n            Console.WriteLine(a);\n        }\n    }\n}\n<\/code><\/pre>\n<p>Yukar\u0131daki koda bakt\u0131\u011f\u0131m\u0131zda Parse() metoduna a\u015f\u0131r\u0131 y\u00fcklenme yap\u0131lm\u0131\u015ft\u0131r 2 parametreli \u015fekilde de kullan\u0131labilmektedir. <code>var a  = Enum.Parse(typeof(Ay), &quot;ARALIk&quot;);<\/code> \u015feklinde... En sondaki true ifadesi k\u00fc\u00e7\u00fck b\u00fcy\u00fck harf hassasiyetinin \u00f6n\u00fcne ge\u00e7mek i\u00e7in kullan\u0131lmaktad\u0131r. Ancak bu metodun bir k\u00f6t\u00fc durumu vard\u0131r. Enumlar i\u00e7erisinde ARALIk \u015feklinde bir ifade yoksa bu metot hata f\u0131rlatacakt\u0131r. Programda \u00e7al\u0131\u015fma zaman\u0131nda crash olacakt\u0131r. Bunun \u00f6n\u00fcne ge\u00e7mek i\u00e7in TryParse() metodu geli\u015ftirilmi\u015ftir.<\/p>\n<p>TryParse() metodu C# 4.0 ile birlikte gelmi\u015ftir. Bu metodun en b\u00fct\u00fck avantaj\u0131 hatal\u0131 aramalara kar\u015f\u0131 try-catch ikilisine gerek duymamakt\u0131r. L\u00fctfen a\u015fa\u011f\u0131daki kodu inceleyiniz...<\/p>\n<pre><code class=\"language-csharp\">        static void Main(string[] args)\n        {\n            var aranacak = &quot;ocak&quot;;\n            Ay aylar;\n            bool sonuc = Enum.TryParse&lt;Ay&gt;(aranacak, true, out aylar);\n            Console.WriteLine(sonuc);\n            Console.WriteLine(aylar);\n        }<\/code><\/pre>\n<p>TryParse() metodu generic bir metottur. Bu nedenle metot ad\u0131ndan sonra damond &quot;&lt;&gt;&quot; operat\u00f6r\u00fcne yer verilmektedir.<br \/>\nDe\u011fi\u015fken \u00f6n\u00fcne out anahtar kelimesinin yaz\u0131lmas\u0131n\u0131n sebebi sizce neden? Bu metot geriye true\/false de\u011ferleri d\u00f6nd\u00fcrmektedir. Ancak aylar anahtar kelimesinin i\u00e7erisinde de arama sonucu saklanmaktad\u0131r. Burada 2 de\u011fi\u015fkenide d\u00f6nd\u00fcrmek i\u00e7in C # geli\u015ftiricieleri ya Tupple de\u011fer d\u00f6necekti ya da burada oldu\u011fu gibi out anahtar kelimesini kullanacaklard\u0131 tercihlerini out anahtar kelimesinden kullanm\u0131\u015flar. Bence g\u00fczel olmu\u015f bunun sebebi C# 7.0 ile birlikte out kulanmak i\u00e7in de\u011fi\u015fkenin \u00f6nceden tan\u0131mlanmas\u0131na gerek yoktu do\u011fal olarak kodumuz a\u015fa\u011f\u0131daki gibi olaca\u0131kt\u0131r.<\/p>\n<pre><code class=\"language-csharp\">using System;\nnamespace ConsoleApp3\n{\n    enum Ay\n    {\n\n        OCAK = 1,\n        SUBAT,\n        MART,\n        NISAN,\n        MAYIS,\n        HAZIRAN,\n        TEMMUZ,\n        AGUSTOS,\n        EYLUL,\n        EKIM,\n        KASIM,\n        ARALIK\n    }\n    class Program\n    {\n        static void Main(string[] args)\n        {\n            var aranacak = &quot;ocak&quot;;\n            bool sonuc = Enum.TryParse&lt;Ay&gt;(aranacak, true, out Ay aylar);\n            Console.WriteLine(sonuc);\n            Console.WriteLine(aylar);\n        }\n    }\n}\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Enum tipinin Parse() metodu kendisine parametre olarak verilen enum tipinde arama yap\u0131l\u0131rken kullan\u0131lmaktad\u0131r. Bu metodun nas\u0131l kullan\u0131ld\u0131\u011f\u0131 a\u015fa\u011f\u0131da verilmi\u015ftir. using System; namespace ConsoleApp3 { enum&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/berenkudaygorun.com\/blog\/blog\/2020\/01\/19\/enum-tipleri-ve-parse-tryparse-kullanimi\/\">Devam\u0131n\u0131 oku<span class=\"screen-reader-text\">Enum Tipleri ve Parse() TryParse() Kullan\u0131m\u0131<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[204,160,24,25,203],"class_list":["post-255","post","type-post","status-publish","format-standard","hentry","category-c-sharp","tag-c-4-0","tag-c-7-0","tag-enum","tag-enumeration","tag-tryparse","entry"],"_links":{"self":[{"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/posts\/255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/comments?post=255"}],"version-history":[{"count":1,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/posts\/255\/revisions"}],"predecessor-version":[{"id":256,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/posts\/255\/revisions\/256"}],"wp:attachment":[{"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/media?parent=255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/categories?post=255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/tags?post=255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}