最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中ref關鍵字的用法

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

在C#中,如果在方法參數(shù)前面加上ref關鍵字,說明參數(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";
        }

輸出結果:

a
a--refchanged

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

參數(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; }
    }

輸出結果:

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

總結

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

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

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

相關文章

最新評論

吉木萨尔县| 龙江县| 宕昌县| 兴海县| 永宁县| 共和县| 固阳县| 建水县| 沿河| 象州县| 灵丘县| 河西区| 神农架林区| 长武县| 赫章县| 阳江市| 成武县| 延庆县| 巴彦县| 江达县| 铜鼓县| 丹阳市| 遵义市| 五峰| 七台河市| 长武县| 清原| 易门县| 德化县| 隆回县| 保亭| 古浪县| 化州市| 吉林市| 宁都县| 长宁区| 台北市| 陕西省| 崇信县| 固安县| 珲春市|