{"id":4763,"date":"2022-08-24T08:56:46","date_gmt":"2022-08-24T03:26:46","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/"},"modified":"2022-08-24T08:56:46","modified_gmt":"2022-08-24T03:26:46","slug":"solved-short-circuit-if-condition-does-not-work","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/","title":{"rendered":"[Solved] Short-Circuit If Condition Does not work"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-32566536\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"32566536\" data-parentid=\"32558510\" data-score=\"1\" data-position-on-page=\"3\" data-highest-scored=\"0\" data-question-has-accepted-highest-score=\"0\" itemprop=\"suggestedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>In your example you can have TWO different causes for the <code>NullReferenceException<\/code>:<\/p>\n<pre><code>- Value `user` is null;\n- `user.FirstName` is null.\n<\/code><\/pre>\n<p>I assume you&#8217;ve checked already if <code>user<\/code> is not null, so lets skip that one.<\/p>\n<p>Now lets assume that <code>user.FirstName<\/code> is null, what happens then?<\/p>\n<p>The first condition <code>string.IsNullOrWhiteSpace(user.FirstName)<\/code> will result to <code>true<\/code>. Is this enough for the if-statement to execute the inner code block or should the second condition also be evaluated?<\/p>\n<p>Lets take a look at this truth-table:<\/p>\n<pre><code>A  &amp;&amp; B     = RESULT\n--------------------\nFalse False = False\nFalse True  = False\nTrue  False = False\nTrue  True  = True\n<\/code><\/pre>\n<p>So when using the <code>&amp;&amp;<\/code>-operator the total condition is only true when both subconditions are true. So when the first condition is true, the second one still needs to be evaluated. A simple translation of the truth-table according to C# would be (where ??? stands for: Don&#8217;t care):<\/p>\n<pre><code>A  &amp;&amp; B     = RESULT\n--------------------\nFalse ???   = False\nTrue  False = False\nTrue  True  = True\n<\/code><\/pre>\n<p>So when checking your second condition, the property <code>user.FirstName.Length<\/code> is read, resulting in your <code>NullReferenceException<\/code>.<\/p>\n<p>How to prevent this. As other people have stated, you probably want to execute the code block when: The <code>FirstName<\/code> is NULL <em>OR<\/em> Empty <em>OR<\/em> WhiteSpace <em>OR<\/em> larger than 64. Your current condition checks, basically, if FirstName is NULL <em>AND<\/em> larger than 64.<\/p>\n<p>So&#8230; use the ||-operator:<\/p>\n<pre><code>if (string.IsNullOrWhiteSpace(user.FirstName) || !(user.FirstName.Length &lt;= 64))\n<\/code><\/pre>\n<p>or more clear:<\/p>\n<pre><code>if (string.IsNullOrWhiteSpace(user.FirstName) || (user.FirstName.Length &gt; 64))\n<\/code><\/pre>\n<p>The C# truth-table would be:<\/p>\n<pre><code>A  || B     = RESULT\n--------------------\nFalse False = False\nFalse True  = True\nTrue  ???   = True\n<\/code><\/pre>\n<p>In which you can cleary see the &#8220;short circuit&#8221; part.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Short-Circuit If Condition Does not work <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] In your example you can have TWO different causes for the NullReferenceException: &#8211; Value `user` is null; &#8211; `user.FirstName` is null. I assume you&#8217;ve checked already if user is not null, so lets skip that one. Now lets assume that user.FirstName is null, what happens then? The first condition string.IsNullOrWhiteSpace(user.FirstName) will result to true. &#8230; <a title=\"[Solved] Short-Circuit If Condition Does not work\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/\" aria-label=\"More on [Solved] Short-Circuit If Condition Does not work\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[324,456,355],"class_list":["post-4763","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-exception","tag-nullreferenceexception"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Short-Circuit If Condition Does not work - JassWeb<\/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:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Short-Circuit If Condition Does not work - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] In your example you can have TWO different causes for the NullReferenceException: - Value `user` is null; - `user.FirstName` is null. I assume you&#8217;ve checked already if user is not null, so lets skip that one. Now lets assume that user.FirstName is null, what happens then? The first condition string.IsNullOrWhiteSpace(user.FirstName) will result to true. ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-24T03:26:46+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Short-Circuit If Condition Does not work\",\"datePublished\":\"2022-08-24T03:26:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/\"},\"wordCount\":207,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\",\"exception\",\"nullreferenceexception\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/\",\"name\":\"[Solved] Short-Circuit If Condition Does not work - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-08-24T03:26:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Short-Circuit If Condition Does not work\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Short-Circuit If Condition Does not work - JassWeb","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:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Short-Circuit If Condition Does not work - JassWeb","og_description":"[ad_1] In your example you can have TWO different causes for the NullReferenceException: - Value `user` is null; - `user.FirstName` is null. I assume you&#8217;ve checked already if user is not null, so lets skip that one. Now lets assume that user.FirstName is null, what happens then? The first condition string.IsNullOrWhiteSpace(user.FirstName) will result to true. ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/","og_site_name":"JassWeb","article_published_time":"2022-08-24T03:26:46+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Short-Circuit If Condition Does not work","datePublished":"2022-08-24T03:26:46+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/"},"wordCount":207,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","exception","nullreferenceexception"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/","url":"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/","name":"[Solved] Short-Circuit If Condition Does not work - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-08-24T03:26:46+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-short-circuit-if-condition-does-not-work\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Short-Circuit If Condition Does not work"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/4763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=4763"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/4763\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=4763"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=4763"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=4763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}