{"id":3429,"date":"2020-10-30T04:42:27","date_gmt":"2020-10-30T04:42:27","guid":{"rendered":"https:\/\/studysection.com\/blog\/?p=3429"},"modified":"2020-10-30T06:20:04","modified_gmt":"2020-10-30T06:20:04","slug":"c-best-practices","status":"publish","type":"post","link":"https:\/\/studysection.com\/blog\/c-best-practices\/","title":{"rendered":"C# Best Practices"},"content":{"rendered":"<p>Good code is self-explanatory, readable, optimized, and easy to maintain. Your piece of code should be readable enough and easy to understand like a story. Naming conventions play a major role in this.<\/p>\n<h2>Naming Conventions<\/h2>\n<p>There are following three terminologies are used to declare C# naming standards. <\/p>\n<ul>\n<li><strong>Camel Case<\/strong> (camelCase): In this standard, the first letter of the word is always in small letters and after that, each word starts with a capital letter or the first character of every word is UpperCase and other characters are lower case.<\/li>\n<li><strong>Pascal Case<\/strong> (PascalCase): Using this convention, the first letter of every word needs to be in capital letters.<\/li>\n<li><strong>Underscore Prefix<\/strong> (_underScore): For underscore ( _ ), the word after underscore(_) uses camelCase terminology.<\/li>\n<li>Class names and method names should be in Pascal case<\/li>\n<li>For better indentation and readability, use curly brackets vertically. <\/li>\n<li>Method arguments and local variables should be in the camelcase.<\/li>\n<li>Do not use shorthand notation for variable names<\/li>\n<li>Avoid underscores while naming identifiers.<\/li>\n<li>Do not use single char variable names like i, t, etc.<\/li>\n<li>Prefer to use predefined data types over system-defined data types.<\/li>\n<li>Always Prefix an Interface with a letter I.<\/li>\n<li>Declare member variables at the top with static variables at the very top.<\/li>\n<li>Avoid unnecessary comments<\/li>\n<li>Keep methods short. Max 20-25 lines<\/li>\n<li>Avoid too many parameters<\/li>\n<li>Consider warnings as errors<\/li>\n<li>Minimize the number of return<\/li>\n<li>The filename should match with the class name and the file name should be in Pascal case<\/li>\n<li>Prefix boolean variables, properties, and methods with is. For example: <br \/>\n            private bool isFinished<\/li>\n<li>Use tab for indentation. The default size is 4<\/li>\n<li>Comments should be on the same level as of code<\/li>\n<li>One blank line between methods in a class<\/li>\n<\/ul>\n<h3>Decide between Value Types and Reference Types<\/h3>\n<p>In the below C# code, we are passing the variable \u201ci\u201d as value type and in the method, incrementing it by 10. As it was passed by value, you will see the original value \u201c5\u201d as the output of the program code.<\/p>\n<p><code>static void Main(string[] args)<br \/>\n{<br \/>\n\tint i = 5;<br \/>\n\tSetValues(i);<br \/>\n\tSystem.Console.WriteLine(\"Currently i = \" + i); \/\/ will print \"Currently i = 5\"<br \/>\n}<br \/>\nstatic void SetValues(int x)<br \/>\n{<br \/>\n\tx += 10;<br \/>\n}<\/code><br \/>\nIn the below code, as we are sending \u201ci\u201d as a reference, it will change the original value of \u201ci\u201d inside the method and hence you will see 15 as the output on the screen.<br \/>\n<code>static void Main(string[] args)<br \/>\n{<br \/>\n\tint i = 5;<br \/>\n\tSetValues(ref i);<\/p>\n<p>\tSystem.Console.WriteLine(\"Currently i = \" + i); \/\/ will print \"Currently i = 15\"<br \/>\n}<br \/>\nstatic void SetValues(ref int x)<br \/>\n{<br \/>\n\tx += 10;<br \/>\n}<\/code><\/p>\n<p>Hence, decide before you start the implementation, else once implemented it will be very difficult to change them over your huge application.<br \/>\n<strong>Always Use Properties instead of Public Variables<\/strong><br \/>\n<code>public class Person<br \/>\n{<br \/>\n\tpublic string Name { get; private set; }<br \/>\n\tpublic string Age { get; }<br \/>\n}<\/code><\/p>\n<p>If you don&#8217;t want anybody to set the Property explicitly from outside, you can just only implement the getter inside the property implementation or mark the setter as private. Also, you can implement the properties from any interface, thus giving you more <a href=\"https:\/\/studysection.com\/blog\/oops-concept-in-c\/\">OOPs<\/a>.<br \/>\n<strong>Use Nullable Data Types Whenever Required<\/strong><br \/>\nint index = 0; \/\/ simple declaration of int<br \/>\nTo convert this as a nullable data type, you have to modify a bit to declare like this:<\/p>\n<p>int? index = null; \/\/ nullable data type declaration<br \/>\nOnce you add the \u201c?\u201d modifier to the data type, your variable will become nullable and you will be able to store \u201cnull\u201d value to it. Generally, it is helpful when used with boolean values.<\/p>\n<p><strong>Prefer Runtime Constants over Compile time Constants<\/strong><br \/>\nRuntime constants are the one which is evaluated at the runtime and are declared using the keyword \u201creadonly\u201d. While compile-time constants are static and evaluated at the compilation time and declared using the keyword \u201cconst\u201d.<\/p>\n<p><em>public readonly string CONFIG_FILE_NAME = &#8220;web.config&#8221;; \/\/ runtime constant<br \/>\npublic const string CONFIG_FILE_NAME = &#8220;web.config&#8221;; \/\/ compile time constant<\/em><\/p>\n<p><strong>Prefer string.Format() or StringBuilder for String Concatenation<\/strong><br \/>\nUsing string.format() will not create multiple objects but will create a single one. StringBuilder is an immutable object that does not create separate memory for every operation. Hence, it is recommended to do such operations by using either string.Format() or StringBuilder.<\/p>\n<p>string str = string.Format(&#8220;{0}{1}{2}{3}{4}&#8221;, &#8220;k&#8221;, &#8220;u&#8221;, &#8220;n&#8221;, &#8220;a&#8221;, &#8220;l&#8221;);<br \/>\nIf you want to use StringBuilder, here is the code for you:<\/p>\n<p><code>StringBuilder sb = new StringBuilder();<br \/>\nsb.Append(\"k\");<br \/>\nsb.Append(\"u\");<br \/>\nsb.Append(\"n\");<br \/>\nsb.Append(\"a\");<br \/>\nsb.Append(\"l\");<br \/>\nstring str = sb.ToString();<\/code><\/p>\n<p>foreach(var collectionValue in MyCollection)<br \/>\n{<br \/>\n    \/\/ your code<br \/>\n}<br \/>\nHere, if your MyCollection is an Array type, the C# compiler will generate the following code for you:<\/p>\n<p>for(int index = 0; index < MyCollection.Length; index++)\n{\n    \/\/ your code\n}\n\n<strong>Properly Utilize try\/catch\/finally Blocks<\/strong><br \/>\nYes, properly utilize the try\/catch\/finally blocks. If you know that the C# code you wrote may throw some Exception, use the try\/catch block for that piece of code to handle the exception. If you know that, the fifth line of your 10 lines code may throw an exception, it is advisable to wrap that line of code only with the try\/catch block. Unnecessary lines of code with try\/catch slow down your code processing. Sometimes, I notice people surrounding every method with try\/catch blocks which is really very bad and decreases the performance of the code. So from now, use it only when it is required. For cleaning up of resources use the finally block after the call. If you are calling any database, close the connection in that block. Whether your code executes properly or not, the finally block always runs. So, properly utilize it to clean up the resources.<\/p>\n<p><strong>Catch Only that Exception that You Can Handle<\/strong><br \/>\nIt is also a major one. We always use the generic Exception class to catch any exception which is neither good for your application nor for the system performance. Use catch on those which are expected and order them accordingly. At the end of the code, add the generic Exception to catch any other unknown exceptions. This gives you a proper way to handle the exception. Suppose, your code is throwing NullReferenceException or ArgumentException.Direct use of the Exception class is very difficult to handle in your application. You can handle the problem easily, by catching the exception properly, <\/p>\n<p><strong>Use IDisposable Interface<\/strong><br \/>\nUse IDisposable interface to free all the resources from the memory in C#. Once you implement an IDisposable interface in your class, you will get a Dispose() method there. Write code there to free the resources. If you implement IDisposable, you can initialize your class like this:<\/p>\n<p><code>using (PersonDataSource personDataSource = DataSource.GetPerson())<br \/>\n{<br \/>\n    \/\/ write your code here<br \/>\n}<\/code><\/p>\n<p>After the using() {} block, it will call the Dispose() method automatically to free up the class resources. You will not have to call the Dispose() explicitly for the class.<br \/>\n<strong>Splitting of Logic into Several Small and Simple Methods<\/strong><br \/>\nIf methods are too long, sometimes it is difficult to handle them. Always use a number of small methods based upon their functionality instead of putting them in a single one. If you break them in separate methods and in the future you need to call one part, it will be easier to call rather than replicating the code. Also, it is easier to do unit testing for the small chunks rather than a big C# code. So, whenever you are writing a piece of code, first think of what you want to do and extract your code in small simple methods and call them from wherever you want. In general, a method should not exceed 10-15 lines long.<\/p>\n<p><small><em>Microsoft Windows 10 is a widely used operating system in computers all over the world. If you have skills in Microsoft Windows 10 then you can get a <a href=\"https:\/\/www.studysection.com\/windows-10-expert\">Windows 10 Certification<\/a> from StudySection which can help you in getting hired. A beginner level certification exam for newbies and an advanced level certification exam for experts is available on StudySection.<\/em><\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Good code is self-explanatory, readable, optimized, and easy to maintain. Your piece of code should be readable enough and easy<\/p>\n","protected":false},"author":1,"featured_media":3431,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[142,583],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>StudySection Blog - C Sharp(also written as C#) Best Practices<\/title>\n<meta name=\"description\" content=\"Good code is self-explanatory, and easy to maintain. Your piece of C# code should be readable enough and easy to understand like a story.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/studysection.com\/blog\/c-best-practices\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"StudySection Blog - C Sharp(also written as C#) Best Practices\" \/>\n<meta property=\"og:description\" content=\"Good code is self-explanatory, and easy to maintain. Your piece of C# code should be readable enough and easy to understand like a story.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/studysection.com\/blog\/c-best-practices\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Posts on famous people, innovations and educational topics\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/studysection\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-30T04:42:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-10-30T06:20:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2020\/10\/c-sharp.png\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin-studysection-blog\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@studysection\" \/>\n<meta name=\"twitter:site\" content=\"@studysection\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin-studysection-blog\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/studysection.com\/blog\/c-best-practices\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/c-best-practices\/\"},\"author\":{\"name\":\"admin-studysection-blog\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\"},\"headline\":\"C# Best Practices\",\"datePublished\":\"2020-10-30T04:42:27+00:00\",\"dateModified\":\"2020-10-30T06:20:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/studysection.com\/blog\/c-best-practices\/\"},\"wordCount\":1208,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"keywords\":[\"C\",\"Optimized\"],\"articleSection\":[\"Learn and Grow\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/studysection.com\/blog\/c-best-practices\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/studysection.com\/blog\/c-best-practices\/\",\"url\":\"https:\/\/studysection.com\/blog\/c-best-practices\/\",\"name\":\"StudySection Blog - C Sharp(also written as C#) Best Practices\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/#website\"},\"datePublished\":\"2020-10-30T04:42:27+00:00\",\"dateModified\":\"2020-10-30T06:20:04+00:00\",\"description\":\"Good code is self-explanatory, and easy to maintain. Your piece of C# code should be readable enough and easy to understand like a story.\",\"breadcrumb\":{\"@id\":\"https:\/\/studysection.com\/blog\/c-best-practices\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/studysection.com\/blog\/c-best-practices\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/studysection.com\/blog\/c-best-practices\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/studysection.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# Best Practices\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/studysection.com\/blog\/#website\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"name\":\"Blog Posts on famous people, innovations and educational topics\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/studysection.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/studysection.com\/blog\/#organization\",\"name\":\"StudySection\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"contentUrl\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"width\":920,\"height\":440,\"caption\":\"StudySection\"},\"image\":{\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/studysection\",\"https:\/\/twitter.com\/studysection\",\"https:\/\/www.instagram.com\/study.section\/\",\"https:\/\/www.linkedin.com\/company\/studysection\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\",\"name\":\"admin-studysection-blog\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"caption\":\"admin-studysection-blog\"},\"url\":\"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"StudySection Blog - C Sharp(also written as C#) Best Practices","description":"Good code is self-explanatory, and easy to maintain. Your piece of C# code should be readable enough and easy to understand like a story.","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:\/\/studysection.com\/blog\/c-best-practices\/","og_locale":"en_US","og_type":"article","og_title":"StudySection Blog - C Sharp(also written as C#) Best Practices","og_description":"Good code is self-explanatory, and easy to maintain. Your piece of C# code should be readable enough and easy to understand like a story.","og_url":"https:\/\/studysection.com\/blog\/c-best-practices\/","og_site_name":"Blog Posts on famous people, innovations and educational topics","article_publisher":"https:\/\/www.facebook.com\/studysection","article_published_time":"2020-10-30T04:42:27+00:00","article_modified_time":"2020-10-30T06:20:04+00:00","og_image":[{"width":300,"height":200,"url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2020\/10\/c-sharp.png","type":"image\/png"}],"author":"admin-studysection-blog","twitter_card":"summary_large_image","twitter_creator":"@studysection","twitter_site":"@studysection","twitter_misc":{"Written by":"admin-studysection-blog","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/studysection.com\/blog\/c-best-practices\/#article","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/c-best-practices\/"},"author":{"name":"admin-studysection-blog","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402"},"headline":"C# Best Practices","datePublished":"2020-10-30T04:42:27+00:00","dateModified":"2020-10-30T06:20:04+00:00","mainEntityOfPage":{"@id":"https:\/\/studysection.com\/blog\/c-best-practices\/"},"wordCount":1208,"commentCount":0,"publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"keywords":["C","Optimized"],"articleSection":["Learn and Grow"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/studysection.com\/blog\/c-best-practices\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/studysection.com\/blog\/c-best-practices\/","url":"https:\/\/studysection.com\/blog\/c-best-practices\/","name":"StudySection Blog - C Sharp(also written as C#) Best Practices","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/#website"},"datePublished":"2020-10-30T04:42:27+00:00","dateModified":"2020-10-30T06:20:04+00:00","description":"Good code is self-explanatory, and easy to maintain. Your piece of C# code should be readable enough and easy to understand like a story.","breadcrumb":{"@id":"https:\/\/studysection.com\/blog\/c-best-practices\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/studysection.com\/blog\/c-best-practices\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/studysection.com\/blog\/c-best-practices\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/studysection.com\/blog\/"},{"@type":"ListItem","position":2,"name":"C# Best Practices"}]},{"@type":"WebSite","@id":"https:\/\/studysection.com\/blog\/#website","url":"https:\/\/studysection.com\/blog\/","name":"Blog Posts on famous people, innovations and educational topics","description":"","publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/studysection.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/studysection.com\/blog\/#organization","name":"StudySection","url":"https:\/\/studysection.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","contentUrl":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","width":920,"height":440,"caption":"StudySection"},"image":{"@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/studysection","https:\/\/twitter.com\/studysection","https:\/\/www.instagram.com\/study.section\/","https:\/\/www.linkedin.com\/company\/studysection"]},{"@type":"Person","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402","name":"admin-studysection-blog","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","caption":"admin-studysection-blog"},"url":"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/"}]}},"views":266,"_links":{"self":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/3429"}],"collection":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/comments?post=3429"}],"version-history":[{"count":3,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/3429\/revisions"}],"predecessor-version":[{"id":3433,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/3429\/revisions\/3433"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media\/3431"}],"wp:attachment":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media?parent=3429"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/categories?post=3429"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/tags?post=3429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}