• 关键字:this、ref、out


    Class1.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication1
    {
        class Class1
        {
            private string name;
            public Class1(string name)
            {
                // 使用this关键字表明使用当前对象的属性(或方法),后面的name是形参name
                this.name = name;
            }
            public void Eat()
            {
                Console.WriteLine("名字:" + this.name);
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                // 使用类
                Class1 myname = new Class1("namejr");
                myname.Eat();
            }
        }
    }

     使用ref关键字进行引用传参

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int age = 4;
                // 关键字ref按引用传参
                Growth(ref age);
                Console.WriteLine(age);
            }
            // 该static是int类型的++,相当于值类型
            static void Growth(ref int age)
            {
                age++;
                Console.WriteLine("int又长大一岁!!!");
            }
        }
    }

    使用out关键字做引用传递

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int age = 4;
                // 关键字out按引用传参
                // out可以返回多个属性值,而return只能返回一个
                int prev_a, next_a;  // 用来接收上一年和下一年的年龄
                Growth(age, out prev_a, out next_a);
                Console.WriteLine("上一年的年龄:" + prev_a);
                Console.WriteLine("明年的年龄:" + next_a);
            }
            // 使用out关键字,也用来做引用传递
            static void Growth(int age, out int prevage, out int nextage)
            {
                prevage = age - 1;
                nextage = age + 1;
            }
        }
    }

    值得注意的是:ref、out都是引用传递,使用的方法在值传递的前面加上ref/out即可;在使用ref前必须对ref所引用的变量进行赋值,否则会报错,out可以不在引用前赋值,但必须在离开方法前赋值。

     修改:

    关于值传递和引用传递:https://www.cnblogs.com/namejr/p/10261486.html

  • 相关阅读:
    NO.2
    【转载】初始化顺序
    Java中的容器
    primer看完了
    NO.1
    转 Python爬虫入门二之爬虫基础了解
    转 Python爬虫入门一之综述
    hdu 5691 Sitting in Line
    51nod 1043 幸运号码
    51nod 1624 取余最长路
  • 原文地址:https://www.cnblogs.com/namejr/p/10260959.html
Copyright © 2020-2023  润新知