关于方法的ref

没有ref的方法时:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace ConsoleApplication7
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             int number = 10;
14             Test(number);
15             Console.WriteLine(number);//输出结果还是10,方法并没有改变number的值
16             Console.ReadKey();
17         }
18
19         static int Test(int a)
20         {
21             a = 100;
22         }
23
24     }
25 }

有ref的方法时://ref 双向传递值

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace ConsoleApplication7
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             int number = 10;
14             Test(ref number);
15             Console.WriteLine(number);//输出结果是100,方法改变了number的值
16             Console.ReadKey();
17         }
18
19         static int Test(ref int a)
20         {
21             a = 100;
22         }
23
24     }
25 }
时间: 2024-11-05 14:38:28

关于方法的ref的相关文章

33.C#--方法中ref参数的使用

static void Main(string[] args){//方法中ref参数的使用,不考虑实用性,只讲ref使用方法//用ref实现奖金+500double salary = 5000;JiangJin(ref salary); //传实参Console.WriteLine("这个月的总工资是:{0}", salary);Console.ReadKey(); } public static void JiangJin(ref double s) //ref有自动返回功能 { s

C#中方法中 ref 和 out的使用

案例1: static void Main() { int[] ary = { 12, 13, 103, 10003 }; int numLargerThan10,numLargerThan100,numLargerThan1000 ; Proc(ary, out numLargerThan10, out numLargerThan100, out numLargerThan1000); Console.WriteLine("有{0}个数大于10,有{1}个数大于100,有{2}个数大于1000

C# 参考之方法参数关键字:params、ref及out

如果在为方法声明参数时未使用 ref 或 out,则该参数可以具有关联的值.可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值.通过使用方法参数关键字,可以更改这种行为. params params 关键字可以指定在参数数目可变处采用参数的方法参数. 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字. 示例: 字面意思比较难懂,所以看示例很有用. using System; class App { public stati

C#方法中三个重要的参数:out、ref、params

备注:适用于初学者,自学于传智播客. 1.out参数. 概念:如果在一个方法中,返回多个相同类型值的时候,可以考虑返回一数组.但是返回多个不同类型值的时候,返回数组显然不能解决问题,这时就引入out参数.out参数侧重于在一个方法中可以返回多个不同类型的值. 代码举例: 用户登陆: main:Test(numbers, out max1, out min1, out sum1, out avg1, out b, out s, out d); 方法:public static void Test(

ref out 方法参数

ref 关键字使用参数按引用传递,而不是值,通过引用传递的效果是在方法中对参数的任何修改都会反映在调用方法 的基础参数中.引用参数的值与基础参数变量的值始终是一样的.1.若要使用 ref 参数,则方法定义和调用方法都必须显示使用 ref关键字2.传递到 ref 参数必须先初始化,这与out不同,out的参数在传递之前不需要显示初始化3.属性不是变量,因此不能作为 ref 参数传递4.尽管ref 和 out 在运行时的处理方式不同,但它们在编译时的处理方式是相同的.因此,如果一个方法采用 ref参

C# 方法的out、ref、params参数

一.out参数实例 [实例]求一个数组中的最大值.最小值.总和.平均值 class Program { static void Main(string[] args) { //写一个方法 求一个数组中的最大值.最小值.总和.平均值 int[] nums = { 1, 2, 3, 4, 5, 6 ,7}; int max; int sum; int min; int avg; bool b; string s; double d; GetValue(nums, out max, out min,

Ref与Out的区别

Ref与Out的区别 ref和out都是C#中的关键字,所实现的功能也差不多,都是指定一个参数按照引用传递. 对于编译后的程序而言,它们之间没有任何区别,也就是说它们只有语法区别. 总结起来,他们有如下语法区别: 1.ref传进去的参数必须在调用前初始化,out不必,即: int i; SomeMethod( ref i );//语法错误 SomeMethod( out i );//通过 2.ref传进去的参数在函数内部可以直接使用,而out不可: public void SomeMethod(

ref(C# 参考)

ref 关键字使参数按引用传递.其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中.若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字.例如: class RefExample { static void Method(ref int i) { i = 44; } static void Main() { int val = 0; Method(ref val); // val is now 44 } } 传递到 ref 参数的参数必须最先

C#中方法的参数的四种类型

C#中方法的参数有四种类型: 1. 值参数类型  (不加任何修饰符,是默认的类型) 2. 引用型参数  (以ref 修饰符声明) 3. 输出型参数  (以out 修饰符声明) 4. 数组型参数  (以params 修饰符声明) =================================================== 1. 值传递: 值类型是方法默认的参数类型,采用的是值拷贝的方式.也就是说,如果使用的是值类型,则可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值.使用