{"id":33454,"date":"2014-08-19T00:55:00","date_gmt":"2014-08-18T21:55:00","guid":{"rendered":"https:\/\/fatihboy.com\/?p=33454"},"modified":"2021-06-17T10:22:11","modified_gmt":"2021-06-17T07:22:11","slug":"csharp-6-record-sinifi-taslak-onerisi","status":"publish","type":"post","link":"https:\/\/fatihboy.com\/en\/csharp-6-record-sinifi-taslak-onerisi\/","title":{"rendered":"C# 6.0 \u2013 Record S\u0131n\u0131f\u0131 (Taslak \u00d6nerisi)"},"content":{"rendered":"<p>&nbsp;&nbsp; \u00d6zellikle Roslyn projesinin <strong>.NET Compiler Platform<\/strong> ad\u0131yla a\u00e7\u0131k kaynak olarak geli\u015ftirilmeye devam etmesi ard\u0131ndan C# 6 \u00e7al\u0131\u015fmalar\u0131 da ivmelendi. A\u00e7\u0131k kaynak kod geli\u015ftiricilerinden destek gelmesi ve C#\u2019a yeni \u00f6zellikler katma iste\u011fi bu ivmenin dinamikleri aras\u0131nda yer al\u0131yor. \u00c7al\u0131\u015fmalar h\u0131zla devam ederken, ge\u00e7ti\u011fimiz hafta i\u00e7erisinde yeni bir geli\u015fme ya\u015fand\u0131. C# diline yeni bir \u00f6zellik eklenmesi konusunda yeni bir <em>taslak \u00f6nerisi<\/em> sunuldu; <strong>Pattern Matching (Desen E\u015fle\u015ftirme)<\/strong>.<\/p>\n\n\n\n<p align=\"justify\"><strong><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 10px 0px 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"Uyari\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/Uyari.png\" alt=\"Uyari\" width=\"89\" height=\"97\" border=\"0\" align=\"left\">Bu makalede payla\u015ft\u0131\u011f\u0131m Record Class <em>hen\u00fcz taslak a\u015famas\u0131nda<\/em>ki bir \u00f6neri olup C#\u2019a dahil edilip edilmeyece\u011fi, C# 6.0 ile gelip-gelmeyece\u011fi \u00e7ok k\u0131sa bir s\u00fcre \u00f6nce tart\u0131\u015fmaya a\u00e7\u0131lm\u0131\u015ft\u0131r. \u0130lerleyen zamanlarda topluluklar i\u00e7erisindeki fikir al\u0131\u015f-veri\u015fleri neticesinde nihayi \u015feklini al\u0131rken de\u011fi\u015fikli\u011fe u\u011frama olas\u0131l\u0131\u011f\u0131 y\u00fcksektir.<\/strong><\/p>\n\n\n\n<p align=\"justify\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: left; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"locked\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2014\/08\/locked.png\" alt=\"locked\" width=\"128\" height=\"171\" border=\"0\" align=\"left\">   <a href=\"https:\/\/onedrive.live.com\/view.aspx?resid=4558A04E77D0CF5!5396&amp;app=Word\" target=\"_blank\" rel=\"noopener noreferrer\">Bu adresten<\/a> ula\u015fabilece\u011finiz s\u00f6z konusu tasla\u011f\u0131 incelemeye ba\u015flad\u0131\u011f\u0131n\u0131zda sizi <strong>Record<\/strong> ve<strong> Pattern Matching<\/strong> kavramlar\u0131 kar\u015f\u0131layacakt\u0131r. Mevcut durumda C# i\u00e7erisinde <strong>Immutable Object (de\u011fi\u015fmez nesne)<\/strong> olu\u015fturmak i\u00e7in nesnenin salt-okunur \u00f6zelliklerini olu\u015fturmam\u0131z, ard\u0131ndan da bu \u00f6zelliklere de\u011fer at\u0131labilecek constructer\u2019\u0131 olu\u015fturman\u0131z gerekiyor, HashCode, ToString ve Equals fonksiyonlar\u0131n\u0131n yaz\u0131lmas\u0131 gereksinimi saym\u0131yorum bile. Bu ad\u0131mlar\u0131 takip ederek basit bir i\u015f mant\u0131\u011f\u0131 i\u00e7in bile tam anlam\u0131yla immutable bir nesne olu\u015fturmak bile bize i\u015fkence haline gelebilir. Bu noktada sahne alan Record tan\u0131m\u0131n\u0131 C#\u2019ta daha kolay Immutable Object tan\u0131mlamalar\u0131 \u00f6nemli i\u00e7in bir ad\u0131m olarak d\u00fc\u015f\u00fcnebilirsiniz.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>class-declaration: <br>&nbsp;&nbsp;&nbsp; attributes<sub>opt<\/sub>&nbsp;&nbsp; class-modifiers<sub>opt<\/sub>&nbsp; partialopt&nbsp; record class&nbsp;&nbsp; identifier&nbsp;&nbsp; type-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parameter-list<sub>opt<\/sub> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"background-color: #ffff00;\">record-parameters<sub>opt<\/sub><\/span>&nbsp;&nbsp; class-base<sub>opt<\/sub>&nbsp;&nbsp; type-parameter-constraints-clauses<sub>opt<\/sub> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class-body<\/p><p>record-parameters: <br>&nbsp;&nbsp;&nbsp; <strong>(<\/strong>&nbsp; record-parameter-list<sub>opt<\/sub>&nbsp;&nbsp; <strong>)<\/strong><\/p><p>record-parameter-list: <br>&nbsp;&nbsp;&nbsp; record-parameter <br>&nbsp;&nbsp;&nbsp; record-parameter-list&nbsp; , record-parameter<\/p><p>record-parameter: <br>&nbsp;&nbsp;&nbsp; attributes<sub>opt<\/sub>&nbsp; type identifier record-property-nameopt default-argument<sub>opt<\/sub><\/p><p>record-property-name: <br>&nbsp;&nbsp;&nbsp; <strong>:<\/strong> identifier<\/p><p>class-body: <br><strong>{<\/strong>&nbsp;&nbsp; class-member-declarations<sub>opt<\/sub>&nbsp;&nbsp; <strong>}<\/strong> <br><strong><span style=\"background-color: #ffff00;\">;<\/span><\/strong><\/p><\/blockquote>\n\n\n\n<p>&nbsp;&nbsp; Record s\u0131n\u0131f\u0131 tan\u0131m\u0131yla birlikte dikkat edecek olursan\u0131z al\u0131\u015fageldi\u011fimiz s\u0131n\u0131f tan\u0131mlamas\u0131nda da ufak de\u011fi\u015fiklikler yap\u0131lm\u0131\u015f. Record s\u0131n\u0131flar\u0131 ama\u00e7lar\u0131 nedeniyle bir body (g\u00f6vde) i\u00e7ermek zorunda olmad\u0131klar\u0131 i\u00e7in \u201c<strong>;<\/strong>\u201d ile tan\u0131m\u0131n sonland\u0131r\u0131lmas\u0131na izin verilmi\u015f. Konuyu taslakta verilen \u00f6rnek \u00fczerinden biraz daha a\u00e7arak <strong>record class (Kay\u0131t s\u0131n\u0131f\u0131)<\/strong> kavram\u0131n\u0131n kafan\u0131zda daha netle\u015fmesini sa\u011flayal\u0131m;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public record class Cartesian(double x: X, double y: Y);<\/pre>\n\n\n\n<p>&nbsp;&nbsp; Temelde anonim t\u00fcrlerin bir ad\u0131m ileri ta\u015f\u0131nm\u0131\u015f versiyonu olarak da g\u00f6rebilece\u011finiz record s\u0131n\u0131flar\u0131 yukar\u0131daki \u015fekilde sade olarak tan\u0131mlanabilmektedir. Bu tan\u0131mlama ile arkas\u0131ndaki derleyici deste\u011fi sayesinde bize h\u0131zl\u0131ca a\u015fa\u011f\u0131daki \u00f6zelliklere sahip bir s\u0131n\u0131f olu\u015fturma imkan\u0131 sunmakta;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> Belirtti\u011fimiz parametreleri kabul eden bir primary constructer <\/li><li> Belirtti\u011fimiz her bir \u00f6zellik i\u00e7in salt okunur bir property (<em>record s\u0131n\u0131f tan\u0131mlamas\u0131 i\u00e7erisinde \u201c:\u201ddan sonra belirtti\u011finiz&nbsp; tan\u0131mlay\u0131c\u0131 bu property\u2019leri isimlendirmede kullan\u0131lacakt\u0131r<\/em>) <\/li><li> Equals fonksiyonu <\/li><li> GetHashCode fonksiyonu override <\/li><li> ToString fonksiyonu override <\/li><li> <strong>is operat\u00f6r\u00fc<\/strong> <\/li><\/ul>\n\n\n\n<p>&nbsp;&nbsp; is operat\u00f6r\u00fc de record s\u0131n\u0131f\u0131 gibi yeni tan\u0131\u015ft\u0131\u011f\u0131m\u0131z bir operat\u00f6r. Detaylar\u0131na bir sonraki makalemde payla\u015faca\u011f\u0131m is operat\u00f6r\u00fc sayesinde <em>is<\/em> ve <em>switch<\/em> i\u015flemlerinde daha fazla kontrole sahip olabilece\u011fiz.<\/p>\n\n\n\n<p>&nbsp;&nbsp; Taslakta yukar\u0131daki \u00f6rnek ard\u0131ndan derleyicinin olu\u015fturdu\u011fu kod i\u00e7in a\u015fa\u011f\u0131daki \u00e7\u0131kt\u0131 g\u00f6sterilmektedir;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class Cartesian {\n  private readonly double $X;\n  private readonly double $Y;\n  public Cartesian(double x, double y) {\n    this.$X = x;\n    this.$Y = y;\n  }\n  public double X { get { return this.$X; } }\n  public double Y { get { return this.$Y; } }\n\n  \/\/ compiler-generated pattern-is operator\n  public static bool operator is(Cartesian c, out double x, out double y) {\n    x = c.X;\n    y = c.Y;\n    return true;\n  }\n  override public bool Equals(object obj) {\n    var $o = obj as Cartesian;\n    return !ReferenceEquals($o, null) &amp;amp;amp;&amp;amp;amp; object.Equals(X, $o.X) &amp;amp;amp;&amp;amp;amp; object.Equals(Y, $o.Y);\n  }\n  override public int GetHashCode() {\n    int $v = 1203787;\n    $v = ($v * 28341) + X?.GetHashCode().GetValueOrDefault();\n    $v = ($v * 28341) + Y?.GetHashCode().GetValueOrDefault();\n  }\n  override public string ToString() {\n    return new System.Text.StringBuilder()\n      .Append(\u201cCartesian(X: \u201c)\n      .Append(X)\n      .Append(\u201c, Y: \u201d)\n      .Append(Y)\n      .Append(\u201c)\u201d)\n      .ToString();\n  }\n}<\/pre>\n\n\n\n<p>Record s\u0131n\u0131flar\u0131 da normal s\u0131n\u0131f kurallar\u0131na tabidir. Bu durumda normal s\u0131n\u0131flarda oldu\u011fu gibi ek property ve fonksiyon tan\u0131mlamalar\u0131 yap\u0131labilir. Hatta, derleyicinin varsay\u0131lan olan tan\u0131mlad\u0131\u011f\u0131 is operat\u00f6r\u00fc override edilerek \u00f6zelle\u015ftirilebilir.<\/p>\n\n\n\n<p>Mevcut taslak \u015fu an i\u00e7in sadece record anahtar kelimesinin s\u0131n\u0131flarda kullan\u0131m\u0131na izin verse de tasla\u011f\u0131n ilerleyen s\u00fcr\u00fcmlerinde struct\u2019lar\u0131nda bu kapsam i\u00e7erisine al\u0131nmas\u0131 d\u00fc\u015f\u00fcn\u00fclmekte.<\/p>\n\n\n\n<p>Bir sonraki makalemde, birlikte is operat\u00f6r\u00fc ve pattern matching tasla\u011f\u0131n\u0131n detaylar\u0131n\u0131 inceleyece\u011fiz.<\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;&nbsp; \u00d6zellikle Roslyn projesinin .NET Compiler Platform ad\u0131yla a\u00e7\u0131k kaynak olarak geli\u015ftirilmeye devam etmesi ard\u0131ndan C# 6 \u00e7al\u0131\u015fmalar\u0131 da ivmelendi. A\u00e7\u0131k kaynak kod geli\u015ftiricilerinden destek gelmesi ve C#\u2019a yeni \u00f6zellikler katma iste\u011fi bu ivmenin dinamikleri aras\u0131nda yer al\u0131yor. \u00c7al\u0131\u015fmalar h\u0131zla devam ederken, ge\u00e7ti\u011fimiz hafta i\u00e7erisinde yeni bir geli\u015fme ya\u015fand\u0131. C# diline yeni bir \u00f6zellik eklenmesi&#8230;<\/p>\n<p><a class=\"read-more\" href=\"https:\/\/fatihboy.com\/en\/csharp-6-record-sinifi-taslak-onerisi\/\">Read More<\/a><\/p>","protected":false},"author":1,"featured_media":33455,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[77,28],"tags":[41,321,320],"class_list":["post-33454","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-csharp","category-turkce","tag-c","tag-immutable-objects","tag-record"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C# 6.0 \u2013 Record S\u0131n\u0131f\u0131 (Taslak \u00d6nerisi) - Fatih Boy<\/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:\/\/fatihboy.com\/en\/csharp-6-record-sinifi-taslak-onerisi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C# 6.0 \u2013 Record S\u0131n\u0131f\u0131 (Taslak \u00d6nerisi) - Fatih Boy\" \/>\n<meta property=\"og:description\" content=\"&nbsp;&nbsp; \u00d6zellikle Roslyn projesinin .NET Compiler Platform ad\u0131yla a\u00e7\u0131k kaynak olarak geli\u015ftirilmeye devam etmesi ard\u0131ndan C# 6 \u00e7al\u0131\u015fmalar\u0131 da ivmelendi. A\u00e7\u0131k kaynak kod geli\u015ftiricilerinden destek gelmesi ve C#\u2019a yeni \u00f6zellikler katma iste\u011fi bu ivmenin dinamikleri aras\u0131nda yer al\u0131yor. \u00c7al\u0131\u015fmalar h\u0131zla devam ederken, ge\u00e7ti\u011fimiz hafta i\u00e7erisinde yeni bir geli\u015fme ya\u015fand\u0131. C# diline yeni bir \u00f6zellik eklenmesi...Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihboy.com\/en\/csharp-6-record-sinifi-taslak-onerisi\/\" \/>\n<meta property=\"og:site_name\" content=\"Fatih Boy\" \/>\n<meta property=\"article:published_time\" content=\"2014-08-18T21:55:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-17T07:22:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2021\/06\/software-draft.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"1200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Fatih Boy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Boy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/\"},\"author\":{\"name\":\"Fatih Boy\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"headline\":\"C# 6.0 \u2013 Record S\u0131n\u0131f\u0131 (Taslak \u00d6nerisi)\",\"datePublished\":\"2014-08-18T21:55:00+00:00\",\"dateModified\":\"2021-06-17T07:22:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/\"},\"wordCount\":720,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2021\/06\/software-draft.jpg\",\"keywords\":[\"C#\",\"Immutable Objects\",\"Record\"],\"articleSection\":[\"C#\",\"T\u00fcrk\u00e7e\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/\",\"url\":\"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/\",\"name\":\"C# 6.0 \u2013 Record S\u0131n\u0131f\u0131 (Taslak \u00d6nerisi) - Fatih Boy\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2021\/06\/software-draft.jpg\",\"datePublished\":\"2014-08-18T21:55:00+00:00\",\"dateModified\":\"2021-06-17T07:22:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#primaryimage\",\"url\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2021\/06\/software-draft.jpg\",\"contentUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2021\/06\/software-draft.jpg\",\"width\":1800,\"height\":1200},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fatihboy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# 6.0 \u2013 Record S\u0131n\u0131f\u0131 (Taslak \u00d6nerisi)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihboy.com\/#website\",\"url\":\"https:\/\/fatihboy.com\/\",\"name\":\"Fatih Boy\",\"description\":\"Ki\u015fisel Web Sitesi\",\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihboy.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\",\"name\":\"Fatih Boy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"caption\":\"Fatih Boy\"},\"logo\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/fatihboy.com\"],\"url\":\"https:\/\/fatihboy.com\/en\/author\/fatih\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C# 6.0 \u2013 Record S\u0131n\u0131f\u0131 (Taslak \u00d6nerisi) - Fatih Boy","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:\/\/fatihboy.com\/en\/csharp-6-record-sinifi-taslak-onerisi\/","og_locale":"en_US","og_type":"article","og_title":"C# 6.0 \u2013 Record S\u0131n\u0131f\u0131 (Taslak \u00d6nerisi) - Fatih Boy","og_description":"&nbsp;&nbsp; \u00d6zellikle Roslyn projesinin .NET Compiler Platform ad\u0131yla a\u00e7\u0131k kaynak olarak geli\u015ftirilmeye devam etmesi ard\u0131ndan C# 6 \u00e7al\u0131\u015fmalar\u0131 da ivmelendi. A\u00e7\u0131k kaynak kod geli\u015ftiricilerinden destek gelmesi ve C#\u2019a yeni \u00f6zellikler katma iste\u011fi bu ivmenin dinamikleri aras\u0131nda yer al\u0131yor. \u00c7al\u0131\u015fmalar h\u0131zla devam ederken, ge\u00e7ti\u011fimiz hafta i\u00e7erisinde yeni bir geli\u015fme ya\u015fand\u0131. C# diline yeni bir \u00f6zellik eklenmesi...Read More","og_url":"https:\/\/fatihboy.com\/en\/csharp-6-record-sinifi-taslak-onerisi\/","og_site_name":"Fatih Boy","article_published_time":"2014-08-18T21:55:00+00:00","article_modified_time":"2021-06-17T07:22:11+00:00","og_image":[{"width":1800,"height":1200,"url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2021\/06\/software-draft.jpg","type":"image\/jpeg"}],"author":"Fatih Boy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fatih Boy","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#article","isPartOf":{"@id":"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/"},"author":{"name":"Fatih Boy","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"headline":"C# 6.0 \u2013 Record S\u0131n\u0131f\u0131 (Taslak \u00d6nerisi)","datePublished":"2014-08-18T21:55:00+00:00","dateModified":"2021-06-17T07:22:11+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/"},"wordCount":720,"commentCount":0,"publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"image":{"@id":"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2021\/06\/software-draft.jpg","keywords":["C#","Immutable Objects","Record"],"articleSection":["C#","T\u00fcrk\u00e7e"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/","url":"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/","name":"C# 6.0 \u2013 Record S\u0131n\u0131f\u0131 (Taslak \u00d6nerisi) - Fatih Boy","isPartOf":{"@id":"https:\/\/fatihboy.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#primaryimage"},"image":{"@id":"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2021\/06\/software-draft.jpg","datePublished":"2014-08-18T21:55:00+00:00","dateModified":"2021-06-17T07:22:11+00:00","breadcrumb":{"@id":"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#primaryimage","url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2021\/06\/software-draft.jpg","contentUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2021\/06\/software-draft.jpg","width":1800,"height":1200},{"@type":"BreadcrumbList","@id":"https:\/\/fatihboy.com\/csharp-6-record-sinifi-taslak-onerisi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fatihboy.com\/"},{"@type":"ListItem","position":2,"name":"C# 6.0 \u2013 Record S\u0131n\u0131f\u0131 (Taslak \u00d6nerisi)"}]},{"@type":"WebSite","@id":"https:\/\/fatihboy.com\/#website","url":"https:\/\/fatihboy.com\/","name":"Fatih Boy","description":"Ki\u015fisel Web Sitesi","publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihboy.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158","name":"Fatih Boy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","caption":"Fatih Boy"},"logo":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/fatihboy.com"],"url":"https:\/\/fatihboy.com\/en\/author\/fatih\/"}]}},"brizy_media":[],"_links":{"self":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/33454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/comments?post=33454"}],"version-history":[{"count":1,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/33454\/revisions"}],"predecessor-version":[{"id":33456,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/33454\/revisions\/33456"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media\/33455"}],"wp:attachment":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media?parent=33454"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/categories?post=33454"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/tags?post=33454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}