适合新手看的ref和out
面试的时候一般很高的概率会问到ref和out的区别。。。我们死记硬背的话很难记住。
建议大家和我一样简单的探索一下。动手试一下就能记住了。
共同点是我们在使用ref或者out的时候一定要在写的方法里面的参数前面加上ref和out
调用的时候也是一样要写上的
若要使用ref或者 out 参数,方法定义和调用方法都必须显式使用 ref或者out 关键字。
namespace test
{
class Program
{
static void Main(string[] args)
{
int k;//我们定义了一个未初始化的int变量
//定义一个初始化之后的int变量
int i = ; //ref使用的时候必须要初始化。。
//在调用方法传递未初始化的变量的时候。系统提示“使用了未赋值的局部变量k”
//Myref(ref k); //使用初始化之后的变量i试一下
Myref(ref i);//运行结果是1 //赋值一个初始化的i=1。
Myout(out i);//结果为3
//赋值一个未初始话的值k
Myout(out k);//结果为3
Console.ReadKey(); }
static public void Myref(ref int number)
{
// number = 2;当我们对number值改变的时候。。输出结果会是2
Console.WriteLine(number);
}
//如果我们不对number赋值。。会提示在控制离开当前方法之前必须对out参数赋值。
static public void Myout(out int number)
{
//我们对number赋值之后输出
number = ;
Console.WriteLine(number);
} }
}
最后得出结论。。
1.使用ref调用方法。参数必须是初始化之后的变量。
2.使用out调用方法。参数可以不初始化。也可以传递初始化的参数。
3.使用ref作为参数的方法。方法可以不对传进来的参数赋值。
4.使用out作为参数的方法。方法必须对传进来的参数进行赋值。
适合新手看的ref和out的更多相关文章
- 适合新手看的超详细CentOS Linux 7 安装Tomcat8过程
非常详细的安装Tomcat8的步骤,适合新手学习.废话不多说,直接干! 前提条件 1. 已有可直接连接的CentOS7系统 2. CentOS7系统已安装Java JDK 8 下载Tomcat8 下载 ...
- C语言简单实现链栈基本几个功能(适合新手看,大神可指正)
接着上一次的顺序栈,今天我记一下链栈,因为我也是刚学不久,有些地方也稍稍理解不了,所以,一起共勉.我会用我自己结合教材上画的图,争取跟代码一起结合,用文字和图最大化的解释代码,这样的话 ...
- JavaSwing仿QQ登录界面,注释完善,适合新手学习
使用说明: 这是一个java做的仿制QQ登录界面,界面仅使用一个类, JDK版本为jdk-11 素材包的名字为:素材(下载)请在项目中新建一个名字为“素材”的文件夹. 素材: https://pan. ...
- 适合新手:从零开发一个IM服务端(基于Netty,有完整源码)
本文由“yuanrw”分享,博客:juejin.im/user/5cefab8451882510eb758606,收录时内容有改动和修订. 0.引言 站长提示:本文适合IM新手阅读,但最好有一定的网络 ...
- GitHub 上适合新手的开源项目(Python 篇)
作者:HelloGitHub-卤蛋 随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中.为什么这么多人学 Python ?我要喊出那句话了:"人生苦短,我用 Py ...
- 最适合和最不适合新手使用的几款 Linux 发行版
大多数知名的Linux发行版都属于"比较容易使用"这一类.一些观察人士可能会驳斥这个观点,但事实上,说到Linux,大多数并非从事IT或软件开发工作的人会被最容易的使用体验所吸引. ...
- 新手看Mockplus
如今是一个快节奏的社会,每一天都会有无数的软件发布,每一款软件的制作过程不可避免的需要使用原型设计工具.而Mockplus就是一款原型设计软件,可以用于移动端,PC端以及WEB的原型设计.它也符合如今 ...
- 简单用数组模拟顺序栈(c++版)适合新手
**栈是一种操作受限制的线性表,太多官方的话我也不说了,我们都知道栈元素是先进后出的,它有两种存储结构,分别是顺序存储结构和链式存储结构. **今天我先记一下顺序存储结构,后面我会加上链式存储结构的. ...
- python环境搭建-requests的简单安装(适合新手)
安装完python之后,一定要记住安装后的路径.这是我当前的路径. 下面是requests的安装步骤: 我们这里直接用pip安装(这样比较适合新手),新版python自带pip,python3.6.1 ...
随机推荐
- 从RTTI谈C++的向下转型
转自:http://blog.chinaunix.net/uid-28541347-id-4251713.html 从RTTI谈C++的向下转型 1.什么是RTTI? RTTI 是“Runtime T ...
- java程序员从ThinkPad到Mac的使用习惯改变
https://blog.csdn.net/yczz/article/details/49993417
- 判断RadioButtonList是否选中
RadioButtonList有很多指示用户选择项的属性,如SelectedIndex 当该属性 = -1时表示用户没选择项SelectedItem 当该属性为null时也表示用户没选择项
- [leetcode]632. Smallest Range最小范围
You have k lists of sorted integers in ascending order. Find the smallest range that includes at lea ...
- Linux之常用命令
1.cd命令 这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径.如: cd /root/Docements # 切换到 ...
- 帧动画 连续播放多张图片动画 以及ui动画 SoundPool
drawable下有很多图片 可以 <?xml version="1.0" encoding="utf-8"?> <animation-li ...
- php调用window系统自带的命令,比如计算器
1.在cmd命令行输入calc.exe 2.
- c++11日志练习
/************************************************************** 技术博客 http://www.cnblogs.com/itdef/ ...
- adb占用
输入netstat -ano | findstr "5037" .然后会弹出提示告诉你哪些进程占用了该端口,记住非0地址的后面的数字 打开任务管理器,点击“进程“,“查看”-“选择 ...
- 【JDBC】jdbc原理总结
1 什么是JDBC JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库.原来我们操作数据库是在控制台使用SQL语句来操作数据库 ...