{"id":27045,"date":"2024-03-16T07:46:43","date_gmt":"2024-03-16T07:46:43","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/"},"modified":"2024-03-22T10:04:20","modified_gmt":"2024-03-22T10:04:20","slug":"how-to-use-ref-parameters-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/","title":{"rendered":"How to use ref parameters in C#?"},"content":{"rendered":"<p>In C#, the ref parameter is used to pass a reference of a parameter instead of its value. By using the ref keyword, you can modify the value of a parameter during a method call and pass the modified value back to the caller.<\/p>\n<p>The method that uses the ref parameter is shown below:<\/p>\n<ol>\n<li>In the method definition, add the &#8220;ref&#8221; keyword in front of the parameter type. For example, if you want to pass an integer parameter as a reference parameter, the method definition would be as follows:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">MyMethod<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">ref<\/span> <span class=\"hljs-built_in\">int<\/span> myParam<\/span>)<\/span>\r\n{\r\n    <span class=\"hljs-comment\">\/\/ \u65b9\u6cd5\u4f53<\/span>\r\n}\r\n<\/code><\/pre>\n<ol>\n<li>When making a method call, add the keyword &#8220;ref&#8221; before the parameter to be passed. For example, if you want to pass an integer variable as a reference parameter to the above method, the method call would be as follows:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-built_in\">int<\/span> myVariable = <span class=\"hljs-number\">10<\/span>;\r\nMyMethod(<span class=\"hljs-keyword\">ref<\/span> myVariable);\r\n<\/code><\/pre>\n<ol>\n<li>Inside a method, you can use a ref parameter just like a regular variable. Any changes made to the ref parameter will affect the original variable.<\/li>\n<\/ol>\n<p>It is important to note that the use of the &#8220;ref&#8221; keyword in method definitions and method calls must match, otherwise it will result in a compile error. Additionally, when passing a parameter to a method with the &#8220;ref&#8221; keyword, it must be an already initialized variable, and cannot be a literal or expression.<\/p>\n<p>Here is an example using the ref parameter:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">Increment<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">ref<\/span> <span class=\"hljs-built_in\">int<\/span> num<\/span>)<\/span>\r\n{\r\n    num++;\r\n}\r\n\r\n<span class=\"hljs-built_in\">int<\/span> myNumber = <span class=\"hljs-number\">5<\/span>;\r\nIncrement(<span class=\"hljs-keyword\">ref<\/span> myNumber);\r\nConsole.WriteLine(myNumber); <span class=\"hljs-comment\">\/\/ \u8f93\u51fa\u7ed3\u679c\u4e3a6<\/span>\r\n<\/code><\/pre>\n<p>In the above example, the myNumber variable is passed as a reference parameter to the Increment method using the ref keyword. The increment operation on the num parameter inside the method will also affect the original myNumber variable, increasing its value to 6.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C#, the ref parameter is used to pass a reference of a parameter instead of its value. By using the ref keyword, you can modify the value of a parameter during a method call and pass the modified value back to the caller. The method that uses the ref parameter is shown below: In [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-27045","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to use ref parameters in C#? - Blog - Silicon Cloud<\/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:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to use ref parameters in C#?\" \/>\n<meta property=\"og:description\" content=\"In C#, the ref parameter is used to pass a reference of a parameter instead of its value. By using the ref keyword, you can modify the value of a parameter during a method call and pass the modified value back to the caller. The method that uses the ref parameter is shown below: In [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-16T07:46:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T10:04:20+00:00\" \/>\n<meta name=\"author\" content=\"Jackson Davis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jackson Davis\" \/>\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:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"How to use ref parameters in C#?\",\"datePublished\":\"2024-03-16T07:46:43+00:00\",\"dateModified\":\"2024-03-22T10:04:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/\"},\"wordCount\":266,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/\",\"name\":\"How to use ref parameters in C#? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T07:46:43+00:00\",\"dateModified\":\"2024-03-22T10:04:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use ref parameters in C#?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\",\"name\":\"Jackson Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"caption\":\"Jackson Davis\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to use ref parameters in C#? - Blog - Silicon Cloud","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:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/","og_locale":"en_US","og_type":"article","og_title":"How to use ref parameters in C#?","og_description":"In C#, the ref parameter is used to pass a reference of a parameter instead of its value. By using the ref keyword, you can modify the value of a parameter during a method call and pass the modified value back to the caller. The method that uses the ref parameter is shown below: In [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T07:46:43+00:00","article_modified_time":"2024-03-22T10:04:20+00:00","author":"Jackson Davis","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Jackson Davis","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"How to use ref parameters in C#?","datePublished":"2024-03-16T07:46:43+00:00","dateModified":"2024-03-22T10:04:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/"},"wordCount":266,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/","name":"How to use ref parameters in C#? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T07:46:43+00:00","dateModified":"2024-03-22T10:04:20+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-ref-parameters-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to use ref parameters in C#?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350","name":"Jackson Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","caption":"Jackson Davis"},"url":"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/27045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=27045"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/27045\/revisions"}],"predecessor-version":[{"id":61251,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/27045\/revisions\/61251"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=27045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=27045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=27045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}