zoukankan      html  css  js  c++  java
  • 关键字: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

  • 相关阅读:
    java 接口的定义即实现
    进程的pv。。
    变量,常量,字符,字符串,数组的声明及初始化
    运算符重载
    数组大小的声明 1到100的素数
    第十二周助教总结(2021.4.192021.4.25)
    第十周助教总结(2021.4.52021.4.11)
    第十一周助教总结(2021.4.122021.4.18)
    助教周报(第一轮)王冰炜
    ThinkPHP3.1.2整合UCenter详解(一)
  • 原文地址:https://www.cnblogs.com/namejr/p/10260959.html
Copyright © 2011-2022 走看看