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 ...
随机推荐
- Jquery html页面处理基础
1.怎样获得浏览器的可视高度? var windHight = $(window).height(); //获得浏览器的可视高度 2.怎样获得滚动条相对于顶部的高度? var scrollHi ...
- poj3589---判断两个数有多接近
#include <stdio.h> #include <stdlib.h> int main() { ],s2[]; int a,b,i,j,n; scanf("% ...
- Android 常用代码大集合 [转]
[Android]调用字符串资源的几种方法 字符串资源的定义 文件路径:res/values/strings.xml 字符串资源定义示例: <?xml version="1.0&q ...
- T-SQL查询:三值逻辑
1. 三值逻辑:TRUE / FALSE / UNKNOWN 2. 一个缺失的值(NULL)和另一个值进行比较,逻辑结果是UNKNOWN UNKOWN:NULL > 42 / NULL = NU ...
- 查看EBS R12应用中使用CONTEXT_FILE的版本及路径
SELECT * FROM APPLSYS.FND_OAM_CONTEXT_FILES;
- 基于php常用正则表达整理(上)
电子邮件:/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/变量:/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/ 基于p ...
- OC语法7——内存管理之@property参数
@property的参数: 我们已经知道为了给开发者提供便捷,OC提供了@porperty关键字,它可以自动生成属性的set和get方法. 但是我们又知道,在OC中还面临者对象内存管理的问题,而且我们 ...
- MAC上使用maven打android的包,报错:No Android SDK path could be found. 解决办法
对android工程运行mvn compile出现如下信息: No Android SDK path could be found. You may configure it in the pom u ...
- Android SwipeRefreshLayout
首先介绍一下 SwipeRefreshLayout ,由于下拉刷新使用的人比较多,于是谷歌自己就做了一个下拉刷新的控件. android.support.v4.widget.SwipeRefreshL ...
- JavaWeb基础之tomcat部署
有些东西,看起来简单,做起来也简单,简单的你并不一定知道! 问题:如何将一个java project转变为 web project,并使其自动部署到tomcat? 1.先建立一个Java Projec ...