文档章节

C sharp out关键字

塔塔米
 塔塔米
发布于 2016/08/22 12:04
字数 378
阅读 16
收藏 0

https://yutuo.net/archives/5e98cb8b74d6363b.html

在C#中,我经常用到refout这两个关键字,但对其区别也还不是很清楚。

基本上来说,C#函数参数的传递方法为分两种,一种转值,另一种是传址。对于不加任何修饰的函数参数来说,它都是传值的。传值又分为两种,一种是传对象值,另一种是传地址值。对于值类型System.ValueType(包括这两种structenum,C#中的intdouble等基本类型都是struct)来说是传对象值,对于其它对象来说是传地址值。

在加了修饰refout之后,函数参数就是传址的。虽然两者都是传址参数,但两者还是有区别的,用最简单的一句说来说:ref是能进能出,out是能出不能用。就是说ref是可以把值传入函数里,并且可以输出函数外,所以它主要用于函数内部需要对外部值进行修改的时候;out不能把值传入函数,只能做为输出,它主要用于函数需要返回多个值的时候。

要注意的有以下两点:

  1. 使用ref型参数时,在调用函数前必须初始化(设置过值);使用out型参数时,必须在函数内对其初始化(设值)。
  2. 使用refout时,函数的定义和调用函数时,参数前都要加refout关键字。

本文转载自:

塔塔米

塔塔米

粉丝 12
博文 728
码字总数 22768
作品 0
朝阳
程序员
私信 提问
apache2: Could not reliably determine the server's fully qualified domain name

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName 问题情况: [c-sharp] view plaincopy $ sudo /etc/init.d/apache2 re......

aaccee12
2015/01/29
0
0
txt文件导入mysql

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE '' MySQL写入数据通常用insert语句,如 [c-sharp] view plain copy insert into person values(张三,20),(李四,21),(王五,7......

问题达人
2016/11/21
73
0
手动root android 模拟器(emulator)详细过程

从创建一个emulator开始,逐步到root了它。 在文章结尾,我会将大家一些可以遇到的问题与解决方法写出来。 一, 新建一个模拟器。 [c-sharp]view plaincopyprint? 在终端输入:android 在终端...

垂盆草
2013/06/01
1K
0
C#中读取xml文件指定节点

参考:Select XML Nodes by Name 假设xml文件内容是 [c-sharp] view plaincopyprint? 1 start 1 1

嗯哼9925
2017/12/05
0
0
hadoop与mysql数据库相连读出数据

转自:http://blog.csdn.net/qwertyu8656/article/details/6426054 用0.20.2版本 有些类已经过时 但必须要用 因为新版本对数据库连接支持不够 运行mysql创建数据库School,建立teacher表,并...

osDaniel
2014/08/15
125
0

没有更多内容

加载失败,请刷新页面

加载更多

Java 文件类操作API与IO编程基础知识

阅读目录: https://www.w3cschool.cn/java/java-io-file.html Java 文件 Java 文件 Java 文件操作 Java 输入流 Java 输入流 Java 文件输入流 Java 缓冲输入流 Java 推回输入流 Java 数据输入...

boonya
38分钟前
5
0
SDKMAN推荐一个好

是在大多数基于Unix的系统上管理多个软件开发工具包的并行版本的工具。它提供了一个方便的命令行界面(CLI)和API来安装,切换,删除和列出sdk相关信息。以下是一些特性: By Developers, fo...

hotsmile
今天
9
0
什么是 HDFS

是什么? HDFS 是基于 Java 的分布式文件系统,允许您在 Hadoop 集群中的多个节点上存储大量数据。 起源: 单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称...

Garphy
今天
5
0
一起来学Java8(四)——复合Lambda

在一起来学Java8(二)——Lambda表达式中我们学习了Lambda表达式的基本用法,现在来了解下复合Lambda。 Lambda表达式的的书写离不开函数式接口,复合Lambda的意思是在使用Lambda表达式实现函...

猿敲月下码
今天
11
0
debian10使用putty配置交换机console口

前言:Linux的推广普及,需要配合解决实际应用方能有成效! 最近强迫自己用linux进行实际工作,过程很痛苦,还好通过网络一一解决,感谢各位无私网友博客的帮助! 系统:debian10 桌面:xfc...

W_Lu
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部