欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中ref關(guān)鍵字的用法

 更新時間:2022年07月31日 16:32:45   作者:Darren?Ji  
這篇文章介紹了C#中ref關(guān)鍵字的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

在C#中,如果在方法參數(shù)前面加上ref關(guān)鍵字,說明參數(shù)傳遞的是引用,而不是值。如何理解呢?

參數(shù)是簡單類型的例子

        static void Main(string[] args)
        {
            string temp = "a";
            Change(temp);
            Console.WriteLine(temp);

            ChangeByRef(ref temp);
            Console.WriteLine(temp);
            Console.ReadKey();
        }

        private static void Change(string temp)
        {
            temp = temp + "--changed";
        }

        private static void ChangeByRef(ref string temp)
        {
            temp = temp + "--refchanged";
        }

輸出結(jié)果:

a
a--refchanged

  • 在Change()方法中,雖然改變了temp的值,但方法沒有返回值,打印temp依然是初始值a;
  • 在ChnageByRef()方法中,由于加上了關(guān)鍵字,雖然也沒有返回值,當(dāng)改變temp的值后,temp的引用地址發(fā)生了改變,再次打印,temp的值為新的引用地址對應(yīng)的值。

參數(shù)是類類型的例子

    class Program
    {
        static void Main(string[] args)
        {
            Pet p = new Pet(){Age = 5};
            Console.WriteLine("初始年齡是:{0}", p.Age);
            ChangeAge(p);
            Console.WriteLine("改變pet的屬性值后,年齡是:{0}", p.Age);
            ChangeAgeByRef(ref  p);
            Console.WriteLine("改變pet引用地址后,年齡是:{0}", p.Age);
            Console.ReadKey();
        }

        private static void ChangeAge(Pet p)
        {
            p.Age = 10;
        }

        private static void ChangeAgeByRef(ref Pet p)
        {
            p = new Pet(){Age = 20};
        }
    }

    public class Pet
    {
        public int Age { get; set; }
    }

輸出結(jié)果:

  • 在ChangeAge()方法中,改變的是Pet實例的屬性值。
  • 在ChangeAgeByRef()方法中,改變的Pet實例的引用地址。

總結(jié)

方法參數(shù)無論是簡單類型,還是類類型,當(dāng)在其前加上ref關(guān)鍵字后,對參數(shù)的賦值,實際上是改變的是方法參數(shù)變量的引用地址。使用ref注意點:

  • 使用帶ref的方法之前,需要給方法參變量賦上初始值
  • 無論是定義方法還是使用方法,都要帶上關(guān)鍵字ref

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • asp.net core mvc權(quán)限控制:在視圖中控制操作權(quán)限

    asp.net core mvc權(quán)限控制:在視圖中控制操作權(quán)限

    本文主要介紹了asp.net core mvc權(quán)限控制:在視圖中控制操作權(quán)限。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • C#使用AngleSharp庫解析html文檔

    C#使用AngleSharp庫解析html文檔

    這篇文章介紹了C#使用AngleSharp庫解析html文檔的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#實現(xiàn)將Word轉(zhuǎn)化分享為電子期刊

    C#實現(xiàn)將Word轉(zhuǎn)化分享為電子期刊

    曾經(jīng)由一個項目,要求實現(xiàn)制作電子期刊定期發(fā)送給企業(yè)進(jìn)行閱讀,由編輯人員使用 Microsoft Word先生成PDF文件,然后將生成的PDF文件轉(zhuǎn)化為JPEG文件,最后將JPEG文件生成電子書模式,本文給大家介紹了C#實現(xiàn)將Word轉(zhuǎn)化分享為電子期刊,需要的朋友可以參考下
    2023-12-12
  • C#實現(xiàn)在控制臺輸入密碼顯示星號的方法

    C#實現(xiàn)在控制臺輸入密碼顯示星號的方法

    這篇文章主要介紹了C#實現(xiàn)在控制臺輸入密碼顯示星號的方法,感興趣的小伙伴們可以參考一下
    2016-04-04
  • C#制作網(wǎng)站掛機程序的實現(xiàn)示例

    C#制作網(wǎng)站掛機程序的實現(xiàn)示例

    本文主要介紹了C#制作網(wǎng)站掛機程序,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • c# xml轉(zhuǎn)word的實現(xiàn)示例

    c# xml轉(zhuǎn)word的實現(xiàn)示例

    這篇文章主要介紹了c# xml轉(zhuǎn)word的實現(xiàn)示例,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-04-04
  • Unity之繞軸進(jìn)行旋轉(zhuǎn)的操作

    Unity之繞軸進(jìn)行旋轉(zhuǎn)的操作

    這篇文章主要介紹了Unity之繞軸進(jìn)行旋轉(zhuǎn)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • C#實現(xiàn)讀取txt文件生成Word文檔

    C#實現(xiàn)讀取txt文件生成Word文檔

    大家好,本篇文章主要講的是C#實現(xiàn)讀取txt文件生成Word文檔,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • C#通過熱鍵控制顯示器開關(guān)的方法

    C#通過熱鍵控制顯示器開關(guān)的方法

    這篇文章主要介紹了C#通過熱鍵控制顯示器開關(guān)的方法,涉及C#針對熱鍵的操作技巧,非常具有實用價值,需要的朋友可以參考下
    2014-12-12
  • C#如何利用反射將枚舉綁定到下拉框詳解

    C#如何利用反射將枚舉綁定到下拉框詳解

    這篇文章主要給大家介紹了關(guān)于C#如何利用反射將枚舉綁定到下拉框的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧
    2018-07-07

最新評論