新手C#参数类型ref、out、params的学习2018.08.04

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的更多相关文章
- 新手C#int.Parse、int.TryParse的学习2018.08.04
int.Parse()用于将字符串转换为32为int类型,但是在遇到非数字或者类似1.545这种小数的时候会报错,后来采用了int.TryParse,这个在转换后会判断是否可以正常转换,若不能,会返回 ...
- 新手C#重载、重写的学习2018.08.04
重载:在同一类(class)中,使用相同的方法名称,不同的参数和(不一定)不同的返回值类型构造成的方法. 举例: class OverLoadTest { public void Hello() { ...
- 新手C#构造函数、继承、组合的学习2018.08.06/07
构造函数,是一种特殊的方法.主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中.特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同 ...
- 新手C#string类常用函数的学习2018.08.04
ToLower()用于将字符串变为小写,注意字符串的不可变特性,需要重新赋值给另一个字符串变量. s = s.ToLower();//字符串具有不可变性,转换后需要重新赋值,不可仅有s.ToLower ...
- (转)新手C#SQL语句的学习2018.08.13
1.创建数据库(create) CREATE DATABASE database-name 2.删除数据库(drop) drop database dbname 3.备份数据库 --- 创建 备份数据 ...
- 新手C#SQLServer在程序里实现语句的学习2018.08.12
从C#中连接到SQL Server数据库,再通过C#编程实现SQL数据库的增删改查. ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据 ...
- 新手C#s.Split(),s.Substring(,)以及读取txt文件中的字符串的学习2018.08.05
s.split()用于字符串分割,具有多种重载方法,可以通过指定字符或字符串分割原字符串成为字符串数组. //s.Split()用于分割字符串为字符串数组,StringSplitOptions.Rem ...
- 新手C#异常的学习2018.08.07
异常是在程序执行期间出现的问题.C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零. class Program { static void Main(string[] args) ...
- 新手C#面向对象的学习2018.08.06
class Person//声明一个Person类 { //类中的声明与Main中不同,类中声明的是字段而不是函数. public string gender; public string name= ...
随机推荐
- 让IE兼容console——“由于出现错误80020101而导致此项操作无法完成”的解决方案
问题描述 经测试发现问题只出现在: 1.原生IE8(其他版本IE模拟出的IE8无此问题) 2.从打开IE8没有开启过F12(曾经开启过又关闭的无此问题) IE8报错“由于出现错误80020101而导致 ...
- 第12课:HTML基础之DOM操作1
DOM(Document Object Model):文本对象模型 dom对象实际上是html页面转成成的文本对象,可以通过dom对象中js提供的方法找到htm中的各个标签. 练习URL:http:/ ...
- 2018.12.21 Cmos- RF
1 PSK 趋肤效应 50欧匹配 smith s参数 :在datasheet里面会有 Information coding Bluetooth : Continous Variable Slope D ...
- 06-jenkins的账号相关的问题
飞测说:最近几天,在团队分享jenkins后,大家都十分感兴趣,各自下载安装和练习,然而jenkins2.3安装默认有权限设置,这块好多人遇到了问题,现在统一就账号登录的问题一起看看,踩过的坑,希望对 ...
- ZetCode PyQt4 tutorial widgets I
#!/usr/bin/python # -*- coding: utf-8 -*- """ ZetCode PyQt4 tutorial In this example, ...
- 20155226 2016-2017-2 《Java程序设计》第8周学习总结
20155226 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 通用API 日志 java.util.logging包提供了日志功能相关类与接口,使用日志的 ...
- WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件
在 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 一文中,我们说到了在 WPF 中引入简单的 UWP 控件以及相关的注意事项 ...
- POJ3696 The Luckiest number
题意 Language:Default The Luckiest number Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7 ...
- Trie树学习1
Trie树.也称为字典数,前缀树,每一个单词的每一个字母依照顺序相应一个节点.有重合的前缀就共享节点. 理想情况下(满的情况).假若全部的单词都是N长,则树共同拥有N层,每层都是26个子节点. 在程序 ...
- linux下nginx安装、配置实战
1什么是Nginx Nginx("enginex")是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器,在高连接并发的情况下Nginx是Apac ...