追着嘟嘟学c#系列基础第九篇-----c#方法参数【蓝鸥出品】
2016-09-19 18:13
211 查看
形参:定义方法时使用的
实参:使用方法时使用的
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/30/68b4476cb019b3fd474d41a5ea4bcbef)
当需要改变外部值的时候,使用引用参数(ref修饰的或者int[]这样的引用参数)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/30/74a83578e71d385c3a91b0532626b483)
//
如果想在方法内对参数进行修改来影响外部的值,那么可以使用引用类型的参数
public void A(int [] arr){
arr [0] = 12;
}
当需要多的返回值的时候使用输出参数
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/30/7c5c5be21029c01e5592c73caee7556b)
当参数个数不确定的是使用可变参数
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/30/a0a77a67b87c8546198bc912486a1495)
代码:
using System;
namespace lesson09
{
public class MyClass
{
// 定义方法时 参数a和b是形式参数 - 形参
// public int Sum(int a,int b){
// return a + b;
// }
// public void Swap(int a,int b ){
// int temp = a;
// a = b;
// b = temp;
// }
// 使用ref关键字定义引用类型的参数
public void Swap(ref int a,ref int b ){
int temp = a;
a = b;
b = temp;
}
// 如果想在方法内对参数进行修改来影响外部的值,那么可以使用引用类型的参数
public void A(int [] arr){
arr [0] = 12;
}
// 使用out 修饰符来定义输出参数
public int Max(int a,int b, int c,out int min){
// 初始化输出参数
min = 0;
int m = a;
if (m > b) {
m = b;
}
if (m > c) {
m = c;
}
int max = a;
if (max < b) {
max = b;
}
if (max < c) {
max = c;
}
return max;
}
// 定义方法时不能确定调用时会传递多少参数我们可以使用可变参数
// 可变参数只能方法参数列表的最末尾,并且可变参数不可和 ref 和out同时使用
public int Sum(params int [] para)
{
int s = 0;
foreach (var i in para) {
s += i;
}
return s;
}
}
class MainClass
{
public static void Main (string[] args)
{
MyClass c = new MyClass ();
// 调用方法时传入的参数5和7是实际参数 - 实参
// int i = 5;
// int j = 12;
// c.Swap (i,j);
// Console.WriteLine (i);
// Console.WriteLine (j);
// int i = 5;
// int j = 12;
// c.Swap (ref i,ref j);
// Console.WriteLine (i);
// Console.WriteLine (j);
// Console.WriteLine (c.Sum(5,7));
// int[] a = new int[]{ 1 };
// c.A (a);
// Console.WriteLine (a[0]);
// int i = 3;
// int j = 5;
// int k = 45;
// int min = 0;
// int max = c.Max (i, j, k,out min);
// Console.WriteLine (min);
// Console.WriteLine (max);
int s = 0;
s = c.Sum (1, 2, 3, 4);
Console.WriteLine (s);
}
}
}
链接:http://edu.csdn.net/course/detail/2050/31831?auto_start=1
实参:使用方法时使用的
当需要改变外部值的时候,使用引用参数(ref修饰的或者int[]这样的引用参数)
//
如果想在方法内对参数进行修改来影响外部的值,那么可以使用引用类型的参数
public void A(int [] arr){
arr [0] = 12;
}
当需要多的返回值的时候使用输出参数
当参数个数不确定的是使用可变参数
代码:
using System;
namespace lesson09
{
public class MyClass
{
// 定义方法时 参数a和b是形式参数 - 形参
// public int Sum(int a,int b){
// return a + b;
// }
// public void Swap(int a,int b ){
// int temp = a;
// a = b;
// b = temp;
// }
// 使用ref关键字定义引用类型的参数
public void Swap(ref int a,ref int b ){
int temp = a;
a = b;
b = temp;
}
// 如果想在方法内对参数进行修改来影响外部的值,那么可以使用引用类型的参数
public void A(int [] arr){
arr [0] = 12;
}
// 使用out 修饰符来定义输出参数
public int Max(int a,int b, int c,out int min){
// 初始化输出参数
min = 0;
int m = a;
if (m > b) {
m = b;
}
if (m > c) {
m = c;
}
int max = a;
if (max < b) {
max = b;
}
if (max < c) {
max = c;
}
return max;
}
// 定义方法时不能确定调用时会传递多少参数我们可以使用可变参数
// 可变参数只能方法参数列表的最末尾,并且可变参数不可和 ref 和out同时使用
public int Sum(params int [] para)
{
int s = 0;
foreach (var i in para) {
s += i;
}
return s;
}
}
class MainClass
{
public static void Main (string[] args)
{
MyClass c = new MyClass ();
// 调用方法时传入的参数5和7是实际参数 - 实参
// int i = 5;
// int j = 12;
// c.Swap (i,j);
// Console.WriteLine (i);
// Console.WriteLine (j);
// int i = 5;
// int j = 12;
// c.Swap (ref i,ref j);
// Console.WriteLine (i);
// Console.WriteLine (j);
// Console.WriteLine (c.Sum(5,7));
// int[] a = new int[]{ 1 };
// c.A (a);
// Console.WriteLine (a[0]);
// int i = 3;
// int j = 5;
// int k = 45;
// int min = 0;
// int max = c.Max (i, j, k,out min);
// Console.WriteLine (min);
// Console.WriteLine (max);
int s = 0;
s = c.Sum (1, 2, 3, 4);
Console.WriteLine (s);
}
}
}
链接:http://edu.csdn.net/course/detail/2050/31831?auto_start=1
相关文章推荐
- 追着嘟嘟学c#系列基础第六篇-----c#方法【蓝鸥出品】
- 追着嘟嘟学c#系列基础第十一篇-----c#方法重载【蓝鸥出品】
- 追着嘟嘟学c#系列基础第八篇-----c#值类型和引用类型【蓝鸥出品】
- 追着嘟嘟学c#系列基础第五篇-----c#字段【蓝鸥出品】
- 追着嘟嘟学c#系列入门第九篇-----c#的if语句【蓝鸥出品】
- 追着嘟嘟学c#系列基础第十篇-----c#字符串【蓝鸥出品】
- 追着嘟嘟学c#系列基础第二篇-----c#结构体【蓝鸥出品】
- 追着嘟嘟学c#系列基础第四篇-----c#类和对象【蓝鸥出品】
- 追着嘟嘟学c#系列基础第七篇-----c#属性【蓝鸥出品】
- 追着嘟嘟学c#系列基础第十二篇-----c#递归【蓝鸥出品】
- 追着嘟嘟学c#系列基础第一篇-----c#枚举类型【蓝鸥出品】
- 追着嘟嘟学c#系列入门第八篇-----c#的关系运算符和逻辑运算符【蓝鸥出品】
- 追着嘟嘟学c#系列入门第十四篇-----c#的二维数组【蓝鸥出品】
- 追着嘟嘟学c#系列入门第三篇-----c#的基本数据类型【蓝鸥出品】
- 追着嘟嘟学c#系列入门第二篇-----c#的变量和数据类型【蓝鸥出品】
- 追着嘟嘟学c#系列入门第七篇-----c#的控制台的输入输出【蓝鸥出品】
- 追着嘟嘟学c#系列入门第十三篇-----c#的一维数组【蓝鸥出品】
- 追着嘟嘟学c#系列入门第十篇-----c#的Switch语句【蓝鸥出品】
- 追着嘟嘟学c#系列入门第六篇-----c#的字符串的使用【蓝鸥出品】
- 追着嘟嘟学c#系列入门第四篇-----c#的运算符和表达式【蓝鸥出品】