C#方法2

返回值:

返回值类型:

任意的数据类型或者void

void表示该方法无返回值

方法有无返回值取决于方法的调用者是否需要返回值

参数:

参数分为两种:

形式参数:在编写方法的时候 预定义的参数

实际参数:在实际调用(使用)方法的时候 传入方法的参数

参数的类型:

形式参数:任意的数据类型 由方法编写者在预定义时限定

实际参数:任意的数据类型(和形式参数匹配)在方法的调用者中定义赋值

声明和传参:

形式参数:

public static void Area(int radius)//int radius即为形式参数

{

....

}

实际参数:

public static void Main (string[] args)

{

     int r = 1;

     Area(r);  // r即为实际参数

}

// 传参的实质:用实际参数为形式参数赋值

int radius = r;

参数数组,通过关键字params定义参数数组。调用时可以传入个数不同的实参,具备很好的灵活性。

参数数组必须为参数列表的最后一个参数

参数列表之前可以设置其他的参数

示例:

//参数数组,关键字params

static void Add(params int[] p)

{

    for(int i=0;i

数据类型按照大的分类:值类型和引用类型

值类型:基本数据类型、枚举和结构

引用类型:数组、类(String)、接口等

区别:

值类型相当于单独的一个箱子 直接操作箱子内的内容

引用类型相当于管理存储箱子的管理员

从以下几个方面来了解它们的具体区别:

1.声明时

值类型:新产生一个箱子 等待存储

引用类型:产生一个箱子管理员 等待一个箱子

2.被赋值

值类型:将新的内容直接放在箱子内

引用类型:和=右边的管理员一起管理同一个箱子

out 和 ref

函数参数默认是值传递的,也就是“复制一份”

out和ref传递的都是地址引用而不是值

1.形参和实参指向同一地址

2.始终保证形参和实参指向同一地址

区别:

out只出不进

ref又进又出

方法定义时的选择:

1.若方法只有一个返回值 选择使用返回值类型

例:

public static int ReturnInt()

{

  return 1;

}

2.如果返回值多于1个 选择使用out

public static void ReturnInt(out int a,out int b)

{

//a、b赋初值

// a、b参与运算

}

调用时: int c;int d;  ReturnInt(out c,out d);

3.如果需要直接将结果返回到某一个变量上 使用ref

public static void ChangeString(ref String s)

{

s = "000"+s;

}

调用时: String ss = "1";  ChangeString(ref ss);

参数传递需要明白的要点:

形参的修正对实参的影响程度

参数传递的方式:

形式参数 = 实际参数

参数的传递大致分为三类:

默认传参(无修饰传参)值传参

ref修饰传递参数  地址传参

out修饰传递参数 出参

传参规则:

根据形式参数类型的不同 对实际参数的影响程度也不相同

A:String、结构体、基本数据类型(整型、浮点、字符、布尔)、枚举

B:类、数组

默认传参(无修饰传参)值传参:

A:不影响实际参数

B:影响实际参数

ref修饰传递参数  地址传参:

A:影响实际参数

B:影响实际参数

out修饰传递参数  出参:

A:影响实际参数

B:影响实际参数

out修饰的参数 相当于在调用者中声明 在被调用者中赋值

结构体、基本数据类型(整型、浮点、字符、布尔)、枚举 统称值类型

String 数组 类 引用类型

命名参数, 是指通过命名参数(形参名)调用,实参顺序可以和形参不同。

语法:

Method(形参名字:实参值);

示例:

public static void Add(int a,int b)

{

     int result = a + b;

}

public static void Main (string[] args)

{

     int c = 10; 

     // 可以不按形式参数的顺序传入实际参数

     Add(b:5,a:c);

}

含义:可选参数,是指给方法的特定参数指定默认值,在调用方法时可以省略掉这些参数。

注意事项:

(1)可选参数不能为参数列表的第1个参数,必须位于所有的必选参数之后(除非没有必选参数);

(2)可选参数必须指定一个默认值,且默认值必须是一个常量表达式,不能为变量;

(3)所有可选参数以后的参数都必须是可选参数。

(4)若要为可选参数传递新的值 请使用命名参数的语法

示例:

public static void Add(int a,int b=2)

{

     int result = a + b;

}

public static void Main (string[] args)

{

     int a = 10; 

     // 省略b实际参数的传递

     Add(a);

     // 也可以不省略 为b重新赋值

     Add(a,b:5);

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,122评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,170评论 18 399
  • 一天的时间都在和徐老师研究这个围裙三件套,是帽子好?还是男生帽子,女生头巾好?一直纠结中! 最后决定女生头巾,男生...
    李宇航妈妈阅读 128评论 0 1
  • AaronWu阅读 211评论 0 0
  • 文|李大海的影子第三章 | https://www.jianshu.com/p/c54d7adfdb72 第四章第...
    李大海的影子阅读 817评论 1 0

友情链接更多精彩内容