蓝鸥Unity开发基础二——课时9 方法参数
一、方法参数
定义方法时,在参数列表中定义的参数叫做形参;调用方法时,在参数列表中传递的参数叫做实参;
二、方法参数代码解说一:输出a+b的和
using System;
namespace Lesson_09
{
public class MyClass{
public int Sum(int a,int b){
return a + b;
}
}
class MainClass
{
public static void Main (string[] args)
{
MyClass c = new MyClass ();
Console.WriteLine (c.Sum(5,12));
}
}
}
三、方法参数代码解说二:形参和实参的举例说明
using System;
namespace Lesson_09
{
public class MyClass{
//定义方法时,参数a和b是形式参数——形参
public int Sum(int a,int b){
int a=5;
int b=12;
return a + b;
}
}
class MainClass
{
public static void Main (string[] args)
{
MyClass c = new MyClass ();
//调用方法时,传入的参数5和12是实际参数——实参
int i = c.Sum (5,12);
}
}
}
四、方法参数代码解说三,如何把a和b的值进行互换?采用值类型是否可行?请记住值类型系统会自动分配空间
using System;
namespace Lesson_09
{
public class MyClass{
public void Swap(int a,int b){
int temp = a;
a = b;
b = temp;
}
}
class MainClass
{
public static void Main (string[] args)
{
MyClass c = new MyClass ();
int i = 5;
int j = 12;
c.Swap (i,j);
Console.WriteLine ("I="+i);
Console.WriteLine ("J="+j);
}
}
}
五、方法参数代码解说四:如果想在方法内对参数进行修改来影响外部的值,那么可以使用引用类型的参数
namespace Lesson_09
{
public class MyClass{
public void Swap(int a,int b){
int temp = a;
a = b;
b = temp;
}
public void A(int[] arr){
arr[0]=12;
}
}
class MainClass
{
public static void Main (string[] args)
{
MyClass c = new MyClass ();
int [] a=new int[]{1};
c.A (a);
Console.WriteLine (a[0]);
}
}
}
六、引用参数
值类型参数想要达到引用类型参数的效果,需要用到引用修饰符ref
方法参数代码解说五:ref关键字使用
using System;
namespace Lesson_09
{
public class MyClass{
public void Swap(ref int a, ref int b){
int temp = a;
a = b;
b = temp;
}
//如果想在方法内对参数进行修改来影响外部的值,那么可以使用引用类型的参数
// public void A(int[] arr){
// arr[0]=12;
// }
}
class MainClass
{
public static void Main (string[] args)
{
MyClass c = new MyClass ();
// int [] a=new int[]{1};
// c.A (a);
// Console.WriteLine (a[0]);
int i=5;
int j = 12;
c.Swap (ref i,ref j);
Console.WriteLine ("i="+i);
Console.WriteLine ("j="+j);
}
}
}
七、输出参数
输出参数:如果想让一个方法返回多个值,可以用输出参数来处理,在参数钱加一个out修饰符
只有一个返回值的代码实例:
using System;
namespace Lesson_09
{
public class MyClass{
public int Max(int a,int b,int c){
int max = a;
if(max<b){
max = b;
}
if(max<c){
max = c;
}
return max;
}
}
class MainClass
{
public static void Main (string[] args)
{
MyClass c = new MyClass ();
int i = 3;
int j = -4;
int k = 14;
Console.WriteLine (c.Max(i,j,k));
}
}
}
对比输出最小值:使用out修饰符
using System;
namespace Lesson_09
{
public class MyClass{
//使用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;
}
min = m;
int max = a;
if(max<b){
max = b;
}
if(max<c){
max = c;
}
return max;
}
}
class MainClass
{
public static void Main (string[] args)
{
MyClass c = new MyClass ();
int i = 3;
int j = -4;
int k = 14;
int min = 0;
int max = c.Max (i, j, k,out min);
Console.WriteLine ("Min="+min);
}
}
}
八、可变参数
可变参数:如果在定义方法时不能确实有多少个参数,我们可以使用可变参数params
using System;
namespace Lesson_09
{
public class MyClass{
//定义方法时不能确定调用时会传递多少个参数,我们可以使用可变参数
public int Sum(params int[] para){
int s = 0;
foreach(int i in para){
s += i;
}
return s;
}
}
class MainClass
{
public static void Main (string[] args)
{
MyClass c = new MyClass ();
int s = 0;
s = c.Sum (1,2,3,5);
Console.WriteLine (s);
}
}
}
练习:实现一个方法,能够交换参数的值,能将传递进去的三个参数按照由小到大的顺序进行排序,使用ref实现!
转载于:https://blog.51cto.com/11131960/1842280