传递参数ref与输出参数out

ref与out都可以在全局中改变传入的参数的值

但使用ref时,传入的参数必须已赋值,否则是非法的
使用out时,传入参数可以未赋值,但无论如何都必须在方法中赋值

例:

 1 static double a = 10;
 2 static double b = 20;
 3
 4 static void Test(ref double x,out double y)
 5 {
 6     y = 0;  //必须要在方法中赋值一下
 7     x *= 10;
 8     y *= 20;
 9     Console.WriteLine(x);
10     Console.WriteLine(y);
11 }
12 static void Main(string[] args)
13 {
14     Console.WriteLine(a);
15     Console.WriteLine(b);
16
17     Test(ref a,out b);
18     Console.WriteLine(a);
19     Console.WriteLine(b);
20     Console.ReadKey();
21 }

原文地址:https://www.cnblogs.com/xt112233/p/9897372.html

时间: 2024-08-10 00:19:38

传递参数ref与输出参数out的相关文章

动态SQL的执行,注:exec sp_executesql 其实可以实现参数查询和输出参数的

当需要根据外部输入的参数来决定要执行的SQL语句时,常常需要动态来构造SQL查询语句,个人觉得用得比较多的地方就是分页存储过程和执行搜索查询的SQL语句.一个比较通用的分页存储过程,可能需要传入表名,字段,过滤条件,排序等参数,而对于搜索的话,可能要根据搜索条件判断来动态执行SQL语句. 在SQL Server中有两种方式来执行动态SQL语句,分别是exec和sp_executesql.sp_executesql相对而言具有更多的优点,它提供了输入输出接口,可以将输入输出变量直接传递到SQL语句

C#与matlab参数调用(输出参数为两个不同类型的数组)

int L1 = 150; Class1 Coverage = new Coveragefunction2.Class1(); MWArray[] array = null; array = Coverage.Coveragefunction2(2, W1, L1);//(n,input1,input2,...inputm)输出n个矩阵,输入为m个矩阵 MWNumericArray a1 = null; MWNumericArray a2 = null; a1 = (MWNumericArray

C#值参数、引用参数和输出参数

一.值参数:在使用参数时,是把一个值传递给函数使用的一个变量.对函数中此变量的任何修改都不会影响函数调用中指定的参数.(由于函数只有一个返回值,不能用作参数的多个变量值). 二.引用参数:即函数处理的变量与函数调用中使用的变量相同,而不仅仅是值相同的变量.因此,对这个变量的任何改变都会影响用作参数的变量值.需用ref关键字指定参数.用作ref参数的变量有两个限制,由于函数可能会改变引用参数的值,所有必须在函数调用中使用“非常量”变量.其次,必须使用初始化过的变量. 三.输出参数:out关键字,指

ref引用类型,数组型参数,out输出参数

ref和out的相同点和不同点 共同点:都是引用传递不同点:ref的参数在调用之前一定要赋值,在方法调用的过程中可以不要赋值.    out的参数在调用之前可以不赋值,在方法调用的过程中一定要赋值. //方法的参数    class Program    {        static void Main(string[] args)        {            //值传递            //int num = 5;            //Change(num);    

C#参数知识盘点,形/实参、值/引用传递、ref、out、in、params、可选、命名等

引言 参数,也叫参变量,是一个变量.在方法签名中随处可见,实现了不同方法间的数据传递,基本上充斥在代码的各个角落里.实参是通过方法调用传递到方法的值的名称,形参是方法期望接收的值.在方法签名或者原型中,方法名称后的括号包含方法的参数及其类型的完整列表.参数声明指定参数中存储的值的类型.大小和标识符.然而小小参数的背后其实也是有着大学问的,所以本篇博文,您可以和博主一起把C#里面各式各样的参数复习一遍.我们先简单回顾一下各种各样的参数概念,对不同类型参数的使用场景有一个了解,再慢慢深入探讨参数的传

C#方法参数--值参数,引用参数,输出参数

值参数: 使用值参数,通过复制实参的值到形参的方式,把数据传递到方法,方法被调用的时候,系统做如下操作: 在栈中为形参分配空间: 复制实参到形参. 注意:一个值参数的实参不一定是变量,它可以是任何能够计算成相应数据类型的表达式. 在把变量用作实参之前,变量必须被赋值(除非是输出参数,这个稍后介绍),对于引用类型,变量可以设置成实际引用或者Null. 引用参数: 使用引用参数时,必须在方法的申明和调用中都使用关键字ref修饰符. 实参必须是变量,在用作实参前必须被赋值.如果是引用类型的变量,可以赋

C#方法的参数 Ref Out Params 4种类型的参数

转载:http://www.cnblogs.com/kissdodog/archive/2013/05/11/3072815.html 一.按值传递参数 值参数是通过将实参的值复制到形参,来实现按值传递到方法,也就是我们通常说的按值传递. 方法被调用时,CLR做如下操作: 1.在托管堆栈中为形参分配空间: 2.将实参的值复制到形参. 这个太常用了,按值传递参数,是复制一份,因此不影响原来参数的值. public class Program { static void Main(string[]

浅谈c#的三个高级参数ref out 和Params

c#的三个高级参数ref out 和Params 前言:在我们学习c#基础的时候,我们会学习到c#的三个高级的参数,分别是out .ref 和Params,在这里我们来分别的讲解一下,在这里的我们先不做具体的解释,我会通过几个例子来做分别的解释. 一:out参数  1.首先我先给大家一个题:我们来写一个方法,来求一个数组中的最大值,最小值,总和,平均值.代码如下:  int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };  通过分析我们会发现如果我们写一个方

[C#]浅析ref、out参数

按引用传递的参数算是C#与很多其他语言相比的一大特色,想要深入理解这一概念应该说不是一件容易的事,再把值类型和引用类型给参杂进来的话就变得更加让人头晕了.经常看到有人把按引用传递和引用类型混为一谈,让我有点不吐不快.再加上前两天碰到的一个有意思的问题,让我更加觉得应该整理整理关于ref和out的内容了. 一.什么是按引用传递 ref和out用起来还是非常简单的,就是在普通的按值传递的参数前加个ref或者out就行,方法定义和调用的时候都得加.ref和out都是表示按引用传递,CLR也完全不区分r