{"id":55,"date":"2008-10-08T10:52:44","date_gmt":"2008-10-08T08:52:44","guid":{"rendered":"http:\/\/dev.flauschig.ch\/wordpress\/?p=55"},"modified":"2014-12-08T16:48:32","modified_gmt":"2014-12-08T15:48:32","slug":"c-tipps","status":"publish","type":"post","link":"http:\/\/dev.flauschig.ch\/wordpress\/?p=55","title":{"rendered":"C# Tipps"},"content":{"rendered":"<p>C# hat einige nette Features die man auf Anhieb nicht gerade kennt.<br \/>\nHier ein paar davon:<!--more--><\/p>\n<p><strong>Nullable Types<\/strong><br \/>\nWenn man mit Datenbanken arbeitet, wo auch Integer oder Daten &#8220;NULL&#8221; sein k\u00f6nnen, hilft der Nullable Type. Dazu werdendet man einfach ein zus\u00e4tzliches &#8220;?&#8221; bei der Typdeklaration. Hier ein paar Beispiele:<\/p>\n<pre class=\"brush: csharp; gutter: false; title: ; toolbar: false; wrap-lines: false; notranslate\" title=\"\">\r\nint? myNullableInt = null;\r\nDateTime? myNullableDate = null;\r\n<\/pre>\n<p><strong>?? Operator<\/strong><br \/>\nOft muss man eine Variable \u00fcberpr\u00fcfen, ob sie null ist und wenn ja, einen entsprechenden Wert stattdessen verwenden.<br \/>\nNormalerweise macht man das dann so:<\/p>\n<pre class=\"brush: csharp; gutter: false; title: ; toolbar: false; wrap-lines: false; notranslate\" title=\"\">\r\nstring retValue = (myString == null ? &quot;&quot; : myString);\r\n<\/pre>\n<p>In C# l\u00e4sst sich das Ganze abk\u00fcrzen auf:<\/p>\n<pre class=\"brush: csharp; gutter: false; title: ; toolbar: false; wrap-lines: false; notranslate\" title=\"\">\r\nstring retValue = myString ?? &quot;&quot;;\r\n<\/pre>\n<p><strong>Property ohne Member Variable<\/strong><br \/>\nOft braucht man ein einfaches Property auf einer Klasse zum setzen und holen einer Variable.<br \/>\nDazu verwendet man meistens folgendes Beispiel:<\/p>\n<pre class=\"brush: csharp; gutter: false; title: ; toolbar: false; wrap-lines: false; notranslate\" title=\"\">\r\nprivate int _myNumber;\r\npublic int MyNumber {\r\n    get {\r\n        return _myNumber;\r\n    }\r\n    set {\r\n        _myNumber = value;\r\n    }\r\n}\r\n<\/pre>\n<p>In C# kann man auch einfach das verwenden:<\/p>\n<pre class=\"brush: csharp; gutter: false; title: ; toolbar: false; wrap-lines: false; notranslate\" title=\"\">\r\npublic int MyNumber { get; set; }\r\n<\/pre>\n<p><strong>Using reserved names as variables<\/strong><br \/>\nFor various reasons, you might need to use a reserved word (like class or ref) as a variable name (for example for serialization). To overcome the compiler error, just add an @ in front of your variable.<br \/>\nExample:<\/p>\n<pre class=\"brush: csharp; gutter: false; title: ; toolbar: false; wrap-lines: false; notranslate\" title=\"\">\r\nint ref = 10; \/\/ fails\r\nint @ref = 10; \/\/ succeeds\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>C# hat einige nette Features die man auf Anhieb nicht gerade kennt. Hier ein paar davon:<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[4,3],"tags":[50,51,53],"class_list":{"0":"entry","1":"post","2":"publish","3":"author-roemer","4":"has-more-link","5":"post-55","7":"format-standard","8":"category-csharp","9":"category-programming","10":"post_tag-nullable","11":"post_tag-operator","12":"post_tag-property"},"acf":[],"views":6273,"_links":{"self":[{"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/55"}],"collection":[{"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=55"}],"version-history":[{"count":0,"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/55\/revisions"}],"wp:attachment":[{"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=55"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=55"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=55"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}