{"id":1408,"date":"2023-04-05T16:05:50","date_gmt":"2023-04-05T09:05:50","guid":{"rendered":"https:\/\/csharptutorial.net\/?page_id=1408"},"modified":"2023-06-16T19:08:48","modified_gmt":"2023-06-16T12:08:48","slug":"csharp-record","status":"publish","type":"page","link":"https:\/\/www.csharptutorial.net\/csharp-tutorial\/csharp-record\/","title":{"rendered":"C# Record"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you will learn about C# record that provides built-in functionality for encapsulating data.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction to C# record<\/h2>\n\n\n\n<p>C# record provides built-in functionality for encapsulating data, making it easy to work with immutable and strong-typed data.<\/p>\n\n\n\n<p>Records are immutable by default. It means that you cannot mutate (or change) their property values once created.<\/p>\n\n\n\n<p>Records have built-in support for value-based equality checking, meaning that two records with the same values are equal.<\/p>\n\n\n\n<p>Records provide default formatting, which can be customized by overriding the <code>ToString()<\/code> method.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Defining a Record<\/h3>\n\n\n\n<p>To define a record, you use the <code>record<\/code> keyword with its properties:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-function\">record <span class=\"hljs-title\">RecordName<\/span>(<span class=\"hljs-params\">type property1, type property2, ..<\/span>)<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The following example demonstrates how to define a <code>Person<\/code> record with three properties <code>FirstName<\/code>, <code>LastName<\/code>, and <code>Age<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> record <span class=\"hljs-title\">Person<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">string<\/span> FirstName, <span class=\"hljs-keyword\">string<\/span> LastName, <span class=\"hljs-keyword\">int<\/span> Age<\/span>)<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Creating a Record object<\/h3>\n\n\n\n<p>To create a new instance of a record, you can use the <code>new<\/code> keyword followed by the name of the record and provide the values for its properties. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">var<\/span> person = <span class=\"hljs-keyword\">new<\/span> Person(<span class=\"hljs-string\">\"John\"<\/span>, <span class=\"hljs-string\">\"Doe\"<\/span>, <span class=\"hljs-number\">22<\/span>);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we created a new <code>Person<\/code> record with the values <code>\"John\"<\/code> for the <code>FirstName<\/code> property, <code>\"Doe\"<\/code> for the <code>LastName<\/code> property, and <code>22<\/code> for the <code>Age<\/code> property.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Immutability<\/h3>\n\n\n\n<p>Records are immutable by default. The following attempts to change the <code>Age<\/code> of the <code>person<\/code> record and cause a compiled error:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">var<\/span> person = <span class=\"hljs-keyword\">new<\/span> Person(<span class=\"hljs-string\">\"John\"<\/span>, <span class=\"hljs-string\">\"Doe\"<\/span>, <span class=\"hljs-number\">22<\/span>);\n\nperson.Age = <span class=\"hljs-number\">25<\/span>; <span class=\"hljs-comment\">\/\/ ERROR<\/span>\n\n<span class=\"hljs-keyword\">public<\/span> record Person(string FirstName, string LastName, int Age);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Nondestructive mutation<\/h3>\n\n\n\n<p>If you want to copy a record with some modifications, you can use the <code>with<\/code> expression. This is called a non-destructive mutation. <\/p>\n\n\n\n<p>The <code>with<\/code> expression copies an existing record, with specified properties changed. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">var<\/span> person = <span class=\"hljs-keyword\">new<\/span> Person(<span class=\"hljs-string\">\"John\"<\/span>, <span class=\"hljs-string\">\"Doe\"<\/span>, <span class=\"hljs-number\">22<\/span>);\n\n<span class=\"hljs-keyword\">var<\/span> person2 = person with\n{\n    FirstName = <span class=\"hljs-string\">\"Jane\"<\/span>,\n    Age = <span class=\"hljs-number\">20<\/span>\n};\n\nConsole.WriteLine(person2);\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> record <span class=\"hljs-title\">Person<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">string<\/span> FirstName, <span class=\"hljs-keyword\">string<\/span> LastName, <span class=\"hljs-keyword\">int<\/span> Age<\/span>)<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">Person { FirstName = Jane, LastName = Doe, Age = 20 }<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we use the <code>with<\/code> expression to copy the <code>person<\/code> record and change the <code>FirstName<\/code> and <code>Age<\/code> properties using the <a href=\"https:\/\/csharptutorial.net\/csharp-tutorial\/csharp-object-initializer\/\">object initializer<\/a> syntax to specify the values to be changed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Value-based equality checking<\/h3>\n\n\n\n<p>Records have built-in value-based equality checking, which means that two records with the same values are considered equal. <\/p>\n\n\n\n<p>For example, if you create two <code>Person<\/code> records with the same values, they are equal:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">using<\/span> <span class=\"hljs-keyword\">static<\/span> System.Console;\n\n<span class=\"hljs-keyword\">var<\/span> person1 = <span class=\"hljs-keyword\">new<\/span> Person(<span class=\"hljs-string\">\"John\"<\/span>, <span class=\"hljs-string\">\"Doe\"<\/span>, <span class=\"hljs-number\">30<\/span>);\n<span class=\"hljs-keyword\">var<\/span> person2 = <span class=\"hljs-keyword\">new<\/span> Person(<span class=\"hljs-string\">\"John\"<\/span>, <span class=\"hljs-string\">\"Doe\"<\/span>, <span class=\"hljs-number\">30<\/span>);\n\nWriteLine(person1 == person2); <span class=\"hljs-comment\">\/\/ True<\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> record <span class=\"hljs-title\">Person<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">string<\/span> FirstName, <span class=\"hljs-keyword\">string<\/span> LastName, <span class=\"hljs-keyword\">int<\/span> Age<\/span>)<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">True<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Deconstruction record properties<\/h3>\n\n\n\n<p>You can deconstruct a record into its constituent properties. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">using<\/span> <span class=\"hljs-keyword\">static<\/span> System.Console;\n\n<span class=\"hljs-keyword\">var<\/span> person = <span class=\"hljs-keyword\">new<\/span> Person(<span class=\"hljs-string\">\"John\"<\/span>, <span class=\"hljs-string\">\"Doe\"<\/span>, <span class=\"hljs-number\">2<\/span>);\n<span class=\"hljs-keyword\">var<\/span> (FirstName, LastName, Age) = person;\n\nWriteLine(<span class=\"hljs-string\">$\"FirstName: <span class=\"hljs-subst\">{FirstName}<\/span>, LastName: <span class=\"hljs-subst\">{LastName}<\/span>, Age: <span class=\"hljs-subst\">{Age}<\/span>\"<\/span>);\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> record <span class=\"hljs-title\">Person<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">string<\/span> FirstName, <span class=\"hljs-keyword\">string<\/span> LastName, <span class=\"hljs-keyword\">int<\/span> Age<\/span>)<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">FirstName: John, LastName: Doe, Age: 22<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Formatting<\/h3>\n\n\n\n<p>Records have built-in formatting capabilities that allow you to specify how they should be displayed as a string. Also, you can get a string representation of the record&#8217;s values by using the <code>ToString()<\/code> method:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">using<\/span> <span class=\"hljs-keyword\">static<\/span> System.Console;\n\n<span class=\"hljs-keyword\">var<\/span> person = <span class=\"hljs-keyword\">new<\/span> Person(<span class=\"hljs-string\">\"John\"<\/span>, <span class=\"hljs-string\">\"Doe\"<\/span>, <span class=\"hljs-number\">22<\/span>);\n\nWriteLine(person);\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> record <span class=\"hljs-title\">Person<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">string<\/span> FirstName, <span class=\"hljs-keyword\">string<\/span> LastName, <span class=\"hljs-keyword\">int<\/span> Age<\/span>)<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">Person { FirstName = John, LastName = Doe, Age = 22 }<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>By default, the <code>ToString()<\/code> method uses the record&#8217;s name followed by its property names and values. In case you want to customize the formatting, you can override the <code>ToString()<\/code> method like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">using<\/span> <span class=\"hljs-keyword\">static<\/span> System.Console;\n\n<span class=\"hljs-keyword\">var<\/span> person = <span class=\"hljs-keyword\">new<\/span> Person(<span class=\"hljs-string\">\"John\"<\/span>, <span class=\"hljs-string\">\"Doe\"<\/span>, <span class=\"hljs-number\">22<\/span>);\n\nWriteLine(person);\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> record <span class=\"hljs-title\">Person<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">string<\/span> FirstName, <span class=\"hljs-keyword\">string<\/span> LastName, <span class=\"hljs-keyword\">int<\/span> Age<\/span>)<\/span>\n{\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">override<\/span> <span class=\"hljs-keyword\">string<\/span> <span class=\"hljs-title\">ToString<\/span>(<span class=\"hljs-params\"><\/span>)<\/span>\n        =&gt; <span class=\"hljs-string\">$\"(<span class=\"hljs-subst\">{FirstName}<\/span>,<span class=\"hljs-subst\">{LastName}<\/span>,<span class=\"hljs-subst\">{Age}<\/span>)\"<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">(John,Doe,22)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Defining mutable records<\/h2>\n\n\n\n<p>It&#8217;s possible to define a mutable record. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">using<\/span> <span class=\"hljs-keyword\">static<\/span> System.Console;\n\n<span class=\"hljs-keyword\">var<\/span> person = <span class=\"hljs-keyword\">new<\/span> Person { \n    FirstName = <span class=\"hljs-string\">\"John\"<\/span>, \n    LastName = <span class=\"hljs-string\">\"Doe\"<\/span>, \n    Age = <span class=\"hljs-number\">22<\/span> \n};\n\nperson.Age = <span class=\"hljs-number\">25<\/span>; <span class=\"hljs-comment\">\/\/ OK<\/span>\nperson.LastName = <span class=\"hljs-string\">\"Smith\"<\/span>; <span class=\"hljs-comment\">\/\/ OK<\/span>\n\nWriteLine(person );\n\n<span class=\"hljs-keyword\">public<\/span> record Person\n{\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">string<\/span> FirstName { <span class=\"hljs-keyword\">get<\/span>; <span class=\"hljs-keyword\">set<\/span>;}\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">string<\/span> LastName  { <span class=\"hljs-keyword\">get<\/span>; <span class=\"hljs-keyword\">set<\/span>;} \n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">int<\/span> Age { <span class=\"hljs-keyword\">get<\/span>; <span class=\"hljs-keyword\">set<\/span>;}\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">Person { FirstName = John, LastName = Smith, Age = 25 }<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">C# Record applications<\/h2>\n\n\n\n<p>In practice, you can use the C# record in the following scenarios:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>API response models:<\/strong> you can use records to represent response models in RESTful APIs. In this case, you can define the record with the properties that correspond to the data being returned by the API. Records help deserialize the response into a strongly-typed object easily and work with the data more simply.<\/li>\n\n\n\n<li><strong>Configuration settings:<\/strong> you can use records to represent configuration settings for an application. In this case, you define a record with the properties that correspond to the various settings of the application. This allows you to pass the settings around between methods and services easily while enforcing the immutability of the settings.<\/li>\n\n\n\n<li><strong>Domain models:<\/strong> you can use records to represent domain models in an application. In this scenario, you define a record with properties that correspond to the data being modeled. Records allow you to easily work with the data in a strongly-typed and immutable way. Also, you can take advantage of the built-in equality checking and formatting capabilities of records.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>C# record is a reference type that provides built-in functionality for encapsulating data.<\/li>\n\n\n\n<li>Use C# records in API response models, configuration settings, and domain models.<\/li>\n<\/ul>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Was this tutorial helpful ?<\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"1408\"\n\t\t\t\tdata-post-url=\"https:\/\/www.csharptutorial.net\/csharp-tutorial\/csharp-record\/\"\n\t\t\t\tdata-post-title=\"C# Record\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"1408\"\n\t\t\t\tdata-post-url=\"https:\/\/www.csharptutorial.net\/csharp-tutorial\/csharp-record\/\"\n\t\t\t\tdata-post-title=\"C# Record\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, you will learn about C# record that provides built-in functionality for encapsulating data.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":7,"menu_order":91,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1408","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/1408","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/comments?post=1408"}],"version-history":[{"count":5,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/1408\/revisions"}],"predecessor-version":[{"id":2279,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/1408\/revisions\/2279"}],"up":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/7"}],"wp:attachment":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/media?parent=1408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}