2014.8.30.ref,out,params,enum,递归
(一)ref
函数形参变量的输入有两种方式:传值,传址。而ref则为传址。eg:
static int Add(ref int n)
{
Console.WriteLine("Add----1:{0}",n);
n = n + ;
Console.WriteLine("Add----2:{0}",n);
return n;
}
static void Main(string[] args)
{
int a = ;
Console.WriteLine("Main----1:{0}",a);
Add(ref a);//执行函数Add后,并没有把a的值更新,但加上ref则把a在内存中的地址也传给函数了,相应的a指向的地址也就随之改变了。a = Add(a);
Console.WriteLine("Main----2:{0}",a);
Console.ReadKey();
}
打印结果为:

(二)out
out顾名思义,即输出。相当于一个函数可以有多个返回值,这是C#中特有的。
static int Add(int n,out int x)
{
Console.WriteLine("Add----1:{0}",n);
n = n + ;
x = ;
Console.WriteLine("Add----2:{0}",n);
return n;
}
static void Main(string[] args)
{
int a = ;
int x;
Console.WriteLine("Main----1:{0}",a);
a=Add(a,out x);
Console.WriteLine("Main----2:{0},{1}",a,x);//x相当于第二个返回值,它的值也改变了,至少目前我是这么理解的
Console.ReadKey();
}
打印结果为:

(三)params
在数组形参前面使用,可以赋多个值。eg:
static void PaiXu(params int[] nums)
{
for (int i = ; i < nums.Length - ; i++)
{
for (int j = ; j <= nums.Length - i; j++)
{
if (nums[j] > nums[j - ])
{
int temp = nums[j];
nums[j] = nums[j - ];
nums[j - ] = temp;
}
}
}
for (int i = ; i < nums.Length; i++)
{
Console.Write(nums[i]);
}
} PaiXu(, , , , , );//调用的时候可以赋任意多个值了
(四)enum 枚举
枚举是由程序员定义的类型,与类或结构一样。
*枚举只有一种类型的成员:命名的整数值常量。
enum days
{
Sun = ,
Mon,
Tue,
Wed,
Tur,
Fri=,
Sat
}
Console.WriteLine((int)days.Mon);
Console.WriteLine((int)days.Sat);
打印结果为:

2014.8.30.ref,out,params,enum,递归的更多相关文章
- .NET 基础一步步一幕幕[out、ref、params]
out.ref.params out: 如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组. 但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候, 我们可以考虑使用 ...
- .net 中 ref out params的区别
C#中有三个关键字-ref,out ,params,虽然本人不喜欢这三个关键字,因为它们疑似破坏面向对象特性.但是既然m$把融入在c#体系中,那么我们就来认识一下参数修饰符ref,out ,param ...
- 参数修饰符ref,out ,params的区别
参数修饰符ref,out ,params的区别 C#中有三个关键字-ref,out ,params,可是这三个之间的区别你都明白了吗? 那么我们就来认识一下参数修饰符ref,out ,params吧, ...
- C# 中out,ref,params参数的使用
C#中有三个高级参数,分别是out,ref,params: 1.out参数 方法使用return 只能返回一个值(一个数值或一个指针值),out参数可以帮助我们在一个方法中返回多个值,不限类型. ...
- new Date('2014/04/30') 和 new Date('2014-04-30') 的区别
new Date('2014/04/30') Wed Apr 30 2014 00:00:00 GMT+0800 (中国标准时间) new Date('2014-04-30'); Wed Apr 30 ...
- out参数ref参数params 可变参数
1.我们在主函数中调用其他函数,我们管主函数为调用者,其他函数为被调用者. 如果被调用者,想要得到调用者的值:传参 使用静态字段来模拟全局变量 在方法外类里写字段 public static _na ...
- C#方法中三个重要的参数:out、ref、params
备注:适用于初学者,自学于传智播客. 1.out参数. 概念:如果在一个方法中,返回多个相同类型值的时候,可以考虑返回一数组.但是返回多个不同类型值的时候,返回数组显然不能解决问题,这时就引入out参 ...
- c#.net中参数修饰符ref,out ,params解析
params ============================================================================================= ...
- C#中的out参数/ref参数/params可变参数
out参数: out关键字 通过引用来传递参数,在定义方法和调用方法的时候都必须使用out关键字 简单来讲out可以用来返回多个参数类型. static void Main(string[] args ...
随机推荐
- Entity Framework学习笔记
原文地址:http://www.cnblogs.com/frankofgdc/p/3600090.html Entity Framework学习笔记——错误汇总 之前的小项目做完了,到了总结经验和 ...
- ceph for openstack快速部署实施
for el6 即centos6 1,添加ceph 官方yum源 [root@ruiy ~]# cat /etc/yum.repos.d/ceph.repo[ceph-noarch]name=Ceph ...
- Ognl中根元素与非根元素的关系
Ognl中根元素与非根元素的关系 根元素:可以理解为全局变量 非根元素:局部变量 从两者获取其属性的方式看: Object obj = Ognl.parseExpression(“[1]”); [1] ...
- Afinal开源框架中FinalActivity的使用
1. 首先将afinal.jar文件复制到项目中的libs文件夹下 2. 让MainActivity不在继承系统的Activity,而是继承FinalActivity public class Mai ...
- ruby on rails出现的问题ActiveModel::ForbiddenAttributesError
首先分清楚我们在搞rails时.看资料和所使用的环境的版本号是否同样.看的资料是rails3.2,电脑配置的环境是4.0,就会出现这样的安全防范措施的问题. 这类问题大多出如今new或者create两 ...
- javascript高级知识分析——灵活的参数
代码信息来自于http://ejohn.org/apps/learn/. 使用数量可变的参数对编程很有好处 function merge(root){ for(i = 0 ; i < argum ...
- html系列教程--文本格式化
<b>定义粗体文本</b> <br /> <strong>定义加重语气</strong> <br /> <big>定 ...
- sqlplus查看服务名
查看服务名: show parameter service 查看实例名: select * from v$instance; 查看数据库名: select name from v$database; ...
- eclipse - tomcat 远程调试
步骤:前提是tomcat上应用是eclipse打包部署上去的,代码一致. 1,在机器A上部署应用remote-debug之前,需要为机器A上的tomcat配置调试端口.在${tomcat}/bin下加 ...
- mysql 存储过程中的declare 和 set @的两种变量的区别
两者在手册中的说明: DECLARE var_name[,...] type [DEFAULT value]这个语句被用来声明局部变量.要给变量提供一个默认值,请包含一个DEFAULT子句.值可以被指 ...