关键字: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 = ;
// 关键字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 = ;
// 关键字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 - ;
nextage = age + ;
}
}
}
值得注意的是:ref、out都是引用传递,使用的方法在值传递的前面加上ref/out即可;在使用ref前必须对ref所引用的变量进行赋值,否则会报错,out可以不在引用前赋值,但必须在离开方法前赋值。

修改:

关于值传递和引用传递:https://www.cnblogs.com/namejr/p/10261486.html
关键字:this、ref、out的更多相关文章
- C#中三个关键字params,Ref,out
关于这三个关键字之前可以研究一下原本的一些操作 using System; using System.Collections.Generic; using System.Text; namespace ...
- c#关键字及ref和out
最近在写程序时遇到ref,out 参数问题.回头有自习看了看MSDN,才有巩固了基础.我把我的测试程序贴出来,大家分享一下. ref 关键字使参数按引用传递.其效果是,当控制权传递回调用方法时, ...
- 5.C#知识点:ref和Out关键字浅谈
首先我们要知道ref和out在C#里面是什么? 答:它们俩是C#里面的关键字. 他们俩是干啥的呢? 答:他们俩是方法参数的修饰符号,一但使用,方法定义和方法都用都要使用这个关键字,这一点是死规定. 好 ...
- Out 与 Ref 关键字的区别
相同点:既可以通过值也可以通过引用传递参数.通过引用传递参数允许函数成员更改参数的值,并保持该更改.若要通过引用传递参数, 可使用ref或out关键字.ref和out这两个关键字都能够提供相似的功效, ...
- 关于c#中”ref”和”out”关键字的一些理解
一. 综述(本文内容大部分来自网络,经本人整理而成,仅供学习参考,不免理解错误,欢迎批评指正) 在c#中,方法的参数传递有四种类型: (1) 传值参数(by value) 传值参数无需额外的修饰符.传 ...
- 《ASP.NET 1200例》ref关键字与out关键字
REF关键字 ref 关键字会导致通过引用传递的参数,而不是值. 通过引用传递的效果是在方法中对参数的任何改变都会反映在调用方的基础参数中. 引用参数的值与基础参数变量的值始终是一样的. 不要将“通过 ...
- C# 中三个关键字params,Ref,out
一. using System; using System.Collection.Generic; using System.Text; namespace ParamsRefOut { class ...
- C#知识点:ref和Out关键字浅谈
首先我们要知道ref和out在C#里面是什么? 答:它们俩是C#里面的关键字. 他们俩是干啥的呢? 答:他们俩是方法参数的修饰符号,一但使用,方法定义和方法都用都要使用这个关键字,这一点是死规定. 好 ...
- 索引器和ref、out关键字
这节讲三个小知识:索引器.ref.out. 索引器: 在一个类中,我们可以定义一个索引器,它可以让我们在外部像访问数组元素一样访问类的属性成员. 索引器的定义就像定义属性一样,只不过名称为this,后 ...
- C#中ref关键字的用法总结
ref表示引用的意思,C#中它有多种用法,这里简单总结一下: 1.按引用传递参数 具体可见:C#中的值传递与引用传递(in.out.ref) 2.引用局部变量 引用局部变量指的是在变量声明时使用ref ...
随机推荐
- Vuejs 用$emit 与 $on 来进行兄弟组件之间的数据传输
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Pycharm连接Git及使用
环境: Git-2.7.2-32-bit_setup.1457942412.exe TortoiseGit-2.4.0.2-64bit.msi 安装配置Git后,打开Pycharm.file--> ...
- 线程简述(Thread)
线程: 进程是一个正在运行的程序,例如电脑上现在在运行的qq,浏览器,电脑管家,这些都是进程 线程就是每一个进程中的一个执行单元,每一个进程至少一个线程,可以有多个线程,例如浏览器上每一个打开的网页都 ...
- spring-dao.xml配置问题(一)
问题描述:对mapper扫描器进行配置时,sqlSessionFactory依赖报错 <!-- 配置sqlSessionFactory --> <bean id="sqlS ...
- LexAndYacc 安装程序
在ubuntu 下面执行 sudo apt-get install byacc flex bison
- Opencv-Python 图像透视变换cv2.warpPerspective
# -*- coding:utf-8 -*- import cv2 import numpy as np import sys img = cv2.imread('test.jpg') # cv2.i ...
- 安装 aconda 后Linux的终端界面前部出现(base)字样
aconda 是做什么用的这里就不说了,一般玩Python的都知道这东西,最早接触这东西是因为它把NVIDIA中cuda计算和Python互连的一个库拿下了,是买下来了还是专业,还是唯一合作的也就记不 ...
- ORA-00600: internal error code, arguments: [kcblasm_1], [103], [] bug
巡检发现存在alert 日志存在ORA-600 1.0 查询alter 对应的Trace日志 /oracle/admin/fgsquery/udump/fgsquery_ora_21777.trc O ...
- /dev/i2c-*不见了
/********************************************************************** * /dev/i2c-*不见了 * 说明: * 能在他的 ...
- Python之路,第一篇:Python入门与基础
第一篇:Python入门与基础 1,什么是python? Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 2,python的特征: (1)易于学习,易于利用: (2)开 ...