中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

北京企業(yè)聚集西安優(yōu)化外

北京企業(yè)聚集,西安優(yōu)化外,做商城購(gòu)物網(wǎng)站,網(wǎng)頁(yè)版微信怎么艾特別人前言: 今天這篇文章我們簡(jiǎn)單學(xué)習(xí)一下C# ref的用法,在看別人的代碼不至于看不懂邏輯,雖然這是一個(gè)比較簡(jiǎn)單的知識(shí)點(diǎn),但是還是值得我們?nèi)W(xué)習(xí)一下關(guān)于這個(gè)知識(shí)點(diǎn)一些概念,我們知道在C# 中我們的函數(shù)參數(shù),一般…

前言:

今天這篇文章我們簡(jiǎn)單學(xué)習(xí)一下C# ref的用法,在看別人的代碼不至于看不懂邏輯,雖然這是一個(gè)比較簡(jiǎn)單的知識(shí)點(diǎn),但是還是值得我們?nèi)W(xué)習(xí)一下關(guān)于這個(gè)知識(shí)點(diǎn)一些概念,我們知道在C# 中我們的函數(shù)參數(shù),一般都為值引用,C#是一門(mén)解釋型語(yǔ)言,其中對(duì)指針進(jìn)行了封裝,因此用戶(hù)無(wú)法直接調(diào)用對(duì)象的指針,無(wú)法調(diào)用對(duì)象的指針,就不能地址引用了嗎?顯然我們是有其他的方法,ref在C#中起到地址引用的作用,使用ref就可以對(duì)對(duì)象進(jìn)行地址引用了。創(chuàng)作不易,點(diǎn)贊關(guān)注評(píng)論收藏,你的點(diǎn)贊是我創(chuàng)作的動(dòng)力,也是我學(xué)習(xí)的方向。
d97acf8bd6adc01a9bf0ed9bab50b0c2.gif

ref概述

關(guān)鍵字 ref 指示變量是引用或另一個(gè)對(duì)象的別名。 它在五個(gè)不同的上下文中使用:

  1. 在方法簽名和方法調(diào)用中,按引用將參數(shù)傳遞給方法。 有關(guān)詳細(xì)信息,請(qǐng)參閱按引用傳遞參數(shù)。
  2. 在方法簽名中,按引用將值返回給調(diào)用方。 有關(guān)詳細(xì)信息,請(qǐng)參閱引用返回值。
  3. 在成員正文中,指示引用返回值是否作為調(diào)用方欲修改的引用被存儲(chǔ)在本地。 或指示局部變量按引用訪(fǎng)問(wèn)另一個(gè)值。 有關(guān)詳細(xì)信息,請(qǐng)參閱 Ref 局部變量。
  4. 在struct 聲明中,聲明 ref struct 或 readonly ref struct。 有關(guān)詳細(xì)信息,請(qǐng)參閱ref struct 一文。
  5. ref struct在聲明中,聲明字段是引用。 ref請(qǐng)參閱字段文章。

按引用傳遞參數(shù)

在方法的參數(shù)列表中使用 ref 關(guān)鍵字時(shí),它指示參數(shù)按引用傳遞,而非按值傳遞。 ref 關(guān)鍵字讓形參成為實(shí)參的別名,這必須是變量。 換而言之,對(duì)形參執(zhí)行的任何操作都是對(duì)實(shí)參執(zhí)行的。

1.未使用ref進(jìn)行值傳遞

如圖我們調(diào)用函數(shù)沒(méi)有使用ref這里只是傳遞值,并沒(méi)傳遞引用,用C語(yǔ)言的概念我們沒(méi)有傳遞地址,所以它的初始的值不會(huì)隨著函數(shù)改變而改變。
image.png

2.使用ref進(jìn)行引用傳遞

如圖我們使用了ref的方法,注意ref的使用和我們之前的一些語(yǔ)法有一點(diǎn)區(qū)別,其實(shí)我們可以把ref看作C語(yǔ)言的*指針標(biāo)記,我們使用ref調(diào)用函數(shù)時(shí),傳遞的就是地址,所以會(huì)跟著函數(shù)改變我們的初始值,因?yàn)槲覀冊(cè)诤瘮?shù)改變值了,實(shí)現(xiàn)引用傳遞
image.png

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Test10113
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

    private void Form1_Load(object sender, EventArgs e){int test = 100;Console.WriteLine(test);data(ref test);Console.WriteLine(test);}public  void data(ref int test){int a = 4000;test = a;Console.WriteLine(a);}
}

}

引用返回值

引用返回值(或 ref 返回值)是由方法按引用向調(diào)用方返回的值。 即是說(shuō),調(diào)用方可以修改方法所返回的值,此更改反映在所調(diào)用方法中的對(duì)象的狀態(tài)中。(講人話(huà)就是:我們平時(shí)函數(shù)的返回值 return 返回的是一個(gè)值,現(xiàn)在用ref返回的就是一個(gè)引用傳遞,就是一個(gè)地址傳遞,這樣避免了值類(lèi)型在方法返回時(shí)的淺拷貝操作,提高了效率)

image.png

 private void Form1_Load(object sender, EventArgs e){int test = 100;//  Console.WriteLine(test);// data(ref test);int[] datas = new int[] { 1, 2, 3, 4, 5 ,6,7,8,9,10};int data1 =  Find(datas);Console.WriteLine(data1);ref int data =ref Find(datas);datas[5] = 100;// Console.WriteLine(test);for(int i = 0; i < datas.Length; i++){Console.WriteLine(datas[i]);}Console.WriteLine(data);}public  int data(int test){int a = 4000;Console.WriteLine(a);return  test;}public static ref int Find(int[] data){return ref data[5];}

ref 局部變量

ref 局部變量用于指代使用 return ref 返回的值。 無(wú)法將 ref 局部變量初始化為非 ref 返回值。 也就是說(shuō),初始化的右側(cè)必須為引用。 任何對(duì) ref 本地變量值的修改都將反映在對(duì)象的狀態(tài)中,該對(duì)象的方法按引用返回值。
可在以下兩個(gè)位置使用 ref 關(guān)鍵字來(lái)定義 ref 局部變量:(通俗點(diǎn)講就是我們局部變量賦值也是值,使用ref之后就是一個(gè)引用傳遞,就是個(gè)地址,某個(gè)值改變它也會(huì)跟著改變

  • 在變量聲明之前。
  • 緊接在調(diào)用按引用返回值的方法之前。

image.png

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace Test10113
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){int test = 100;//  Console.WriteLine(test);// data(ref test);int[] datas = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };ref int a = ref datas[0];datas[0] = 100;Console.WriteLine(a);int b = a + 10;Console.WriteLine(b);/*  int data1 = Find(datas);Console.WriteLine(data1);ref int data = ref Find(datas);datas[5] = 100;// Console.WriteLine(test);for (int i = 0; i < datas.Length; i++){Console.WriteLine(datas[i]);}Console.WriteLine(data);*/}public int data(int test){int a = 4000;Console.WriteLine(a);return test;}public static ref int Find(int[] data){return ref data[5];}}
}

總結(jié)

這篇文章比較簡(jiǎn)單,只是簡(jiǎn)單的學(xué)習(xí)一下,對(duì)它有更多的認(rèn)識(shí),在有需求的時(shí)候最起碼有路子,雖然很簡(jiǎn)單,但是也是可以學(xué)到東西的,我們學(xué)習(xí)了新的知識(shí),對(duì)我們的知識(shí)儲(chǔ)備及技術(shù)又有新的一點(diǎn)點(diǎn)的進(jìn)步,C#的技術(shù)就是先簡(jiǎn)單再難嘛,積少成多之后才會(huì)成長(zhǎng)才會(huì)進(jìn)步,我們要不斷的學(xué)習(xí)不斷的探索,才能有學(xué)習(xí)的動(dòng)力,才會(huì)有學(xué)習(xí)的欲望,創(chuàng)作不易,點(diǎn)贊評(píng)論收藏關(guān)注,嘿嘿,不喜勿噴!!!!

image.png

http://www.risenshineclean.com/news/49615.html

相關(guān)文章:

  • 網(wǎng)站 緩存方式全國(guó)前十名小程序開(kāi)發(fā)公司
  • wordpress登錄cookiesseo排名優(yōu)化軟件價(jià)格
  • 馬大云湘潭網(wǎng)站優(yōu)化公司大家好
  • 佛山新網(wǎng)站建設(shè)方案網(wǎng)絡(luò)推廣如何收費(fèi)
  • 《電子商務(wù)網(wǎng)站建設(shè)》精品課關(guān)鍵詞檢索
  • 成都互聯(lián)網(wǎng)制作網(wǎng)站頁(yè)面優(yōu)化方案
  • 做網(wǎng)站的分辨率要多大百度怎么推廣自己的網(wǎng)站
  • app網(wǎng)站如何做推廣在百度怎么發(fā)布作品
  • 中國(guó)建設(shè)廳網(wǎng)站如何做電商
  • 網(wǎng)站改域名如何做百度優(yōu)化網(wǎng)頁(yè)優(yōu)化seo廣州
  • 浙江建設(shè)銀行官網(wǎng)站紀(jì)念幣seo和sem推廣
  • h5網(wǎng)站程序北京seo技術(shù)
  • 全國(guó)企業(yè)信用信息公示系統(tǒng)年報(bào)seo服務(wù)是什么意思
  • 購(gòu)物網(wǎng)站建設(shè)seo網(wǎng)絡(luò)營(yíng)銷(xiāo)案例分析
  • 政府網(wǎng)站建設(shè)招標(biāo)文件網(wǎng)頁(yè)制作與網(wǎng)站建設(shè)實(shí)戰(zhàn)教程
  • 手機(jī)微網(wǎng)站模板下載seo和sem推廣
  • 上海做家紡的公司網(wǎng)站成都百度推廣電話(huà)號(hào)碼是多少
  • 做暖暖XO網(wǎng)站網(wǎng)絡(luò)廣告的形式有哪些?
  • 深圳網(wǎng)站制作服務(wù)公網(wǎng)絡(luò)seo優(yōu)化平臺(tái)
  • dede網(wǎng)站seoseo難不難學(xué)
  • sm wordpress東莞關(guān)鍵詞seo
  • 電視臺(tái)網(wǎng)站建設(shè)今日最新新聞?wù)?/a>
  • 聯(lián)合易網(wǎng)北京網(wǎng)站建設(shè)公司怎么樣百度手機(jī)管家
  • 做網(wǎng)站公司漢獅團(tuán)隊(duì)金花站長(zhǎng)工具
  • 做se要明白網(wǎng)站站長(zhǎng)工具在線(xiàn)免費(fèi)
  • 達(dá)州北京網(wǎng)站建設(shè)seog
  • h5自適應(yīng)網(wǎng)站源碼seo的重要性
  • 企業(yè)網(wǎng)站怎樣做免費(fèi)公司軟文代寫(xiě)
  • 哪個(gè)企業(yè)的網(wǎng)站做的比較好無(wú)錫百姓網(wǎng)推廣
  • 免費(fèi)空間 個(gè)人網(wǎng)站 google廣告聯(lián)盟營(yíng)銷(xiāo)管理