ref用于传递参数时,将实参传递到函数中,是引用参数,在使用前必须被赋值。string类型也同样适用。

        static void Main(string[] args)
{
string a1,a2;
int i = 10, j = 20;
swap(ref i, ref j);
Console.WriteLine("i={0},j={1}",i, j);
Console.ReadKey();
}
static void swap(ref int i,ref int j)//ref用于调用原本变量,而非函数中不影响变量的情况
{
int temp;
temp=i;
i = j;
j = temp;
}

out为输出参数,可以用于使函数返回不止一类返回值,且out参数不需要赋初值,out可以用于判断函数执行是否符合要求。

        //用于将汉字的数字转换为阿拉伯数字
static void Main(string[] args)
{
int num;
bool b;
string s;
s = Console.ReadLine();
num=Parse(s,out b);
if (b == true)//通过b的值判断输入的是否为有效汉字
{
Console.WriteLine("success \n{0}",num);
}
else
{
Console.WriteLine("false");
}
Console.ReadKey();
}
static int Parse(string s,out bool success)
{
if(s=="一")//设定两个有效汉字
{
success = true;
return 1;
}
else if(s=="二")
{
success = true;
return 2;
}
else
{
success = false;
return -1;
}
}

可变参数即采用数组形式传递参数,在数据类型前加params表示可变参数,例如static int Max(params int[] values),作用在于调用Max函数时不需要先定义一个数组,可以直接输入数据,Console.WriteLine("{0}", Max(3, 5, 4, 7, 8, 9))。注:可变参数数组必须是最后一个。

        static void Main(string[] args)
{
Console.WriteLine("{0}", Max(, , , , , ));
SayHello("big");
Console.ReadKey();
}
static int Max(params int[] values)//可变参数params,以数组形式传递
{
int max = ;
foreach(int value in values)
{
if (value > max)
max = value;
}
return max;
}

参数默认值即在定义函数时参数给定一个默认值,当使用时未给参数指定值时采用默认值。

        static void Main(string[] args)
{
SayHello("big");
Console.ReadKey();
} static void SayHello(string name,int age=)
{
Console.WriteLine("我是{0},我今年{1}", name, age);
}

其输出结果则是我是big,我今年20,若指定age则会输出指定的age的大小,用重载实现参数默认值的效果在构造函数中用的较多。

2018.08.04

新手C#参数类型ref、out、params的学习2018.08.04的更多相关文章

  1. 新手C#int.Parse、int.TryParse的学习2018.08.04

    int.Parse()用于将字符串转换为32为int类型,但是在遇到非数字或者类似1.545这种小数的时候会报错,后来采用了int.TryParse,这个在转换后会判断是否可以正常转换,若不能,会返回 ...

  2. 新手C#重载、重写的学习2018.08.04

    重载:在同一类(class)中,使用相同的方法名称,不同的参数和(不一定)不同的返回值类型构造成的方法. 举例: class OverLoadTest { public void Hello() { ...

  3. 新手C#构造函数、继承、组合的学习2018.08.06/07

    构造函数,是一种特殊的方法.主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中.特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同 ...

  4. 新手C#string类常用函数的学习2018.08.04

    ToLower()用于将字符串变为小写,注意字符串的不可变特性,需要重新赋值给另一个字符串变量. s = s.ToLower();//字符串具有不可变性,转换后需要重新赋值,不可仅有s.ToLower ...

  5. (转)新手C#SQL语句的学习2018.08.13

    1.创建数据库(create) CREATE DATABASE database-name 2.删除数据库(drop) drop database dbname 3.备份数据库 --- 创建 备份数据 ...

  6. 新手C#SQLServer在程序里实现语句的学习2018.08.12

    从C#中连接到SQL Server数据库,再通过C#编程实现SQL数据库的增删改查. ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据 ...

  7. 新手C#s.Split(),s.Substring(,)以及读取txt文件中的字符串的学习2018.08.05

    s.split()用于字符串分割,具有多种重载方法,可以通过指定字符或字符串分割原字符串成为字符串数组. //s.Split()用于分割字符串为字符串数组,StringSplitOptions.Rem ...

  8. 新手C#异常的学习2018.08.07

    异常是在程序执行期间出现的问题.C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零. class Program { static void Main(string[] args) ...

  9. 新手C#面向对象的学习2018.08.06

    class Person//声明一个Person类 { //类中的声明与Main中不同,类中声明的是字段而不是函数. public string gender; public string name= ...

随机推荐

  1. C++设计模式之桥接模式

    [DP]书上定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化.考虑装操作系统,有多种配置的计算机,同样也有多款操作系统.如何运用桥接模式呢?可以将操作系统和计算机分别抽象出来,让它们各自发展 ...

  2. 免费获取半年 Bitdefender Total Security 2014

    免费获取半年 Bitdefender Total Security 2014,安装后剩余 200 天使用期.安装程序语言是德语,调包下安装语言应该也是可以的? 目前德国活动,Bitdefender T ...

  3. EM算法及其应用: K-means 与 高斯混合模型

    EM算法及其应用(一) EM算法及其应用(二): K-means 与 高斯混合模型 上一篇阐述了EM算法的主要原理,这一篇来看其两大应用 -- K-means 与 高斯混合模型,主要由EM算法的观点出 ...

  4. HDU 2485

    http://acm.hdu.edu.cn/showproblem.php?pid=2485 n个车站,m条边,两边之间费用为1,问最少摧毁多少车站,使得1-n无法在k时间内到达 将2-(n-1)每个 ...

  5. 配置Yaf

    pecl里面的yaf最新测试版http://pecl.php.net/package/Yaf 安装pcre 要先安装pcre, Debian ubuntu执行 sudo apt-get install ...

  6. 浅谈闭包(Closure)

    一.闭包 好长时间对于闭包都知道与函数和其环境变量有关系,但是一直没有一个清晰的认识.今天查看了一下维基百科,顺便写下来. 二.闭包的定义 在编程语言中,闭包(语义闭包或函数闭包)是指哪些可以将语义范 ...

  7. 在IE7+ 中弹出窗口并关闭本身窗口的脚本(备忘)

    window.onload =function(){ window.open("http://www.126.com"); window.opener=null; window.o ...

  8. 解决内部元素onMouseOver/onMouseOut事件冒泡触发父元素的相应事件

    前阵子为BS项目模板做了一个左侧滑动信息栏,效果类似于windows状态栏的自动隐藏效果,鼠标移进滑出,鼠标移出隐藏,浮动时不占用空间,也可以固定住占一块位置.做的过程中遇到一个问题,鼠标在信息栏内部 ...

  9. linux下nginx安装、配置实战

    1什么是Nginx Nginx("enginex")是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器,在高连接并发的情况下Nginx是Apac ...

  10. 【monkeyrunner】monkeyrunner 的主要API和实例

    MonkeyRunner简介 monkeyrunner工具提供了编写控制Android设备或仿真器从Android的代码之外程序的API.随着monkeyrunner,您可以编写安装一个Android ...